в следующей функции, где я использую метод reduce в Javascript, я не понимаю, почему я получаю разные результаты, когда я использую "current" или "array [index] в моем if-заявлении (внутри моего метода уменьшения).
Не текущие и массив [индекс] то же самое?
function pairwise(arr, arg) {
return arr.reduce(function(acc,current, index, array){
for(var i=index+1;i<array.length; i++){
if(current+array[i]===arg){
acc += index+i;
array[index]=array[i]=NaN;
}
}
return acc;
}, 0)
}
Спасибо !!
Вы имеете в виду в этой строке?
array[index]=array[i]=NaN;
Если вы назначаете array[index]
, вы изменяете массив.
Если вы назначаете current
, вы просто перезаписываете current
локальную переменную, но это не оказывает длительного эффекта на массив, из которого это значение пришло.
let arr = [1, 2, 3],
current = arr[0];
current = 42; // obviously does not modify arr
arr[0] = 42; // obviously modifies arr