У меня есть быстрый вопрос о том, почему моя функция возвращает false, когда я ожидаю, что она вернется. Я просмотрел документацию для Array.prototype.every, и я все еще не могу ее найти. Заранее благодарны за Вашу помощь.Почему функция «каждый» Javascript возвращает false?
В каком-то контексте это часть вопроса coderbyte, называемого arithGeo. Текущая функция, над которой я сейчас работаю, должна возвращать true, если разница между каждым элементом одинакова. Здесь я ожидаю, что это вернет true, поскольку каждый элемент равен 5 от следующего.
Здесь моя функция
var arr = [5, 10, 15];
function isArith(arr){
var diff = arr[1] - arr[0];
return arr.every(function(val, ind, col){
// if statement checks to make sure I stay in bounds.
if(col[ind + 1] !== undefined){
var next = col[ind + 1] - val;
console.log(diff === next );
// logging shows the following statement to be true, for every iteration
return diff === next;
}
});
}
var arith = isArith(arr);
console.log('arith: ', arith) // logs false
Лучшим тестом может быть 'if (ind
RobG
Нет, мне не нужно размещать разреженные массивы. Я думаю, что ваше предложение более ясное, чем 'col [ind + 1]! == undefined'. Будут реализованы, спасибо. –