Передача аргументом функции функцию
Добрый день всем. Не могу разобраться с следующим примером.
Есть функция в которой аргументами выступают массив и функция. Нужно написать тело функции, что бы аргументами выступали элемент массива, индекс элемента массива и сам массив.
function knowName(arr, func){
//тело функции ???
}
Что бы при вызове функции передавались аргументы указанные выше. Например:
knowName([1,2,3,4], function(elem, index, arr){// какой то код который оперирует elem, index, arr})
Где elem - элементы массива, index - индекс элемента массива, arr - сам массив. |
function one (array, fn) {
for (var i = 0, ln = array.length; i < ln; ++i) {
fn(array[i], i, array);
}
}
one ([1, 2, 3], function (el, i, ar) {
console.log(el);
console.log(i);
console.log(ar);
});
|
Чем нативный forEach не устроил?
|
Мне нужно самому написать, или придумать логику. Где можно найти код функции forEach?
|
function forEach (array, fn) {
for (var i = 0, ln = array.length; i < ln; ++i) {
fn(array[i], i);
}
}
forEach([1,2,3], function (v) {console.log(v);})
есть встроенный в современных браузерах
[1, 2, 3].forEach(function (v) {console.log(v);})
|
А если нам нужно что то возвращать? Например такой код
function example(arr, func) {
for (var i = 0; i < arr.length; i++) {
func(arr[i], i);
}
}
var a = example(['abc', 'def', 'ghi'], function (elem) {
return typeof elem === 'string';
});
console.log(a);
Почему выводит undefined? И как сделать что бы с return нормально работало? |
Цитата:
for (var i = 0; i < array.length; ++i) {
fn(array[i], i);
}
|
Цитата:
|
А как все это связать, когда пишу return в example, работает не так как ожидалось. Подскажите плиз
|
Цитата:
|
| Часовой пояс GMT +3, время: 22:10. |