Недавно я наткнулся на некоторый код, который должен соответствовать этим массивам попробовать, как я мог бы я не мог получить все кусочки головоломки вместе, чтобы иметь смыслОбъясните сложный код регулярного выражение
validateSequence([1,2,3,4,5,6,7,8,9]) === true
validateSequence([1,2,3,4,5,8,7,8,9]) === false
validateSequence([2,4,6,8,10]) === true
validateSequence([0,2,4,6,8]) === true
validateSequence([1,3,5,7,9]) === true
validateSequence([1,2,4,8,16,32,64]) === false
validateSequence([0,1,1,2,3,5,8,13,21,34]) === false
Вот код что бы подтвердить его правильность:
function validateSequence(x) {
return !!x.reduce(function(a, v, i, arr){
return (arr.length - 1 == i) ? a : a + (arr[i+1] - v) + ',';
}, '').match(/^(\d+,)\1*$/);
}
например, какие два! до x.reduce и как это работает?
Ваш вопрос о [двойном взрыве] (http://stackoverflow.com/q/784929/2679750) или RegExp? –
более общий, как работает весь этот код –