Почему в данном коде последний элемент массива который передан функции inArray( [1,2,3,4,5] ) не добавляется в массив result ? Но если в конец массива добавить любой другой элемент то результат будет правильным ( result = [ 3,4,5] ).
function inArray(array) {
return function (currentArray) {
var result = [];
for (var i = 0; i < currentArray.length; ++i) {
if (currentArray[i] in array )
result.push(currentArray[i]);
}
return result ;
}
}
var a = inArray([1,2,3,4,5])([3,5,4]); // result = 3,4
alert(a);
Потому что Вы перепутали оператор in
и функцию indexOf/includes
.
Но если в конец массива добавить ...
(В коде два массива. О каком из них речь? Очевидно, о первом.)
Потому что тогда в array
появляется элемент с индексом 5
.
function inArray(array) {
return function (currentArray) {
var result = [];
for (var i = 0; i < currentArray.length; ++i) {
if (array.includes(currentArray[i]))
result.push(currentArray[i]);
}
return result ;
}
}
var a = inArray([1,2,3,4,5])([3,5,4]); // result = 3,4
console.log(a);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть по сути два компонента с одной и той же логикой в методе componentWillReseiveProps и в некоторых методах еще Как мне применить наследование...
Из готовых решений что-то у меня не получается найтиА вообще было бы лучше своим кодом сделать