Проверить каждый элемент массива на удовлетворение условию

Рейтинг: 0Ответов: 1Опубликовано: 28.11.2014

Реализовать функцию every(arr, func), которая принимает аргументами массив arr и функцию func. Возвращает true, если функция func вернет для каждого элемента массива true. В функцию func нужно передавать аргументами элемет массива, индекс элемента массива и сам массив.

Пример, как должен работать код:

// Проверка на то, что все элементы массива - строки
every(['mama', 'mila', 'ramu'], function (arrayItem) {
    return typeof arrayItem === 'string';
}); // true

Вот я написал, но не пойму, как в этот фанк впихнуть массив из every.

======================================================================
function funk() {

    for (var i = 0; i < arguments.length; i++) 
            return {
                "arg[i]":arguments[i],
                "i": i

    };
 }
function every(arr, func) {
    return typeof arrayItem === 'string';

}
every(['mama', 'mila', 'ramu'], function funk(arr) {

}); // true

Ответы

▲ 1Принят
  • Вы неправильно поняли условия, от вас требуется сделать функцию every, которая принимает массив и другую функцию. Если переданная функция для всех элементов массива вернет true, то значит и every вернет true, иначе false. В данном же случае ваша every возвращает:

    return typeof arrayItem === 'string'; //неизвестная переменная arrayItem?
    

А аргументы вообще не используются никак.

  • На переданную внутрь функцию налагаются условия, она принимает элемент, индекс и массив. Поэтому ваша функция every должна будет вызвать для каждого переданного элемента массива функцию func(element, index, array) с приведенными параметрами.

  • В итоге Вам надо только реализовать every, без всяких func:

    function every(array, func){
        //вызываем для каждого элемента func(element, index, array) и если для всех она вернула true, то возвращаем true, иначе false   
    }
    
  • Приведенный пример, как должна работать функция, идет в разрез с тем, что описано в условии. Так как по условию она принимает три аргумента, а по примеру только один. С точки зрения логики, скорее всего вместо func(element, index, array) правильнее реализовать func(element). Но лучше уточнить у давшего задание.