функция высшего порядка javascripts
Я пытаюсь понять лучше и начать кодирование JS с функциями более высокого порядка. Ниже приведена только практика, и я хочу вывести массив чисел * 2.
function each(collection, callback) {
for(var i = 0; i < collection.length; i++) {
callback(collection[i]);
}
}
function isNumber(item) {
var arr = [];
if(typeof item === "number") {
arr.push(item * 2);
}
return arr;
}
each([1, 2, 3, 4, "String"], isNumber);
Насколько я понимаю, когда каждая функция () вызывается с массивом и аргументом isNumber, она запускается через функцию каждая. Когда каждая функция вызывается, она вызывает функцию isNumber с массивом [i], затем вызывается функция isNumber с этим массивом [i], и если тип массива [i] является числом, она выталкивает это число * 2 к массив. Результат, который я ожидаю
[2, 4, 6, 8] since "String" is not a number it never got pushed into the array.
Я не правильно понимаю это? Когда я пытаюсь записать этот код, ничего не отображается.