2016-06-20 6 views
0

У меня есть массив продуктов. Я хочу создать второй массив, который будет заполняться только тогда, когда каждый элемент в первом массиве будет соответствовать критериям. Я знаю, что могу использовать для цикла, но я надеялся, что смогу использовать один из новых методов массива (карта, некоторые, найти, уменьшить), но пока не увенчались успехом. у меня есть это:Создание меньшего массива из главного массива

var topProducts = products.find(function (product) { 
    if (product.importance === importance) { 
     return product; 
    } 
}); 

, но он просто возвращает первый продукт, который он находит. Я хочу, чтобы вернуть все продукты, которые он находит (которые никогда не были каждый продукт в массиве продукта.

+0

btw, обратный вызов find должен возвращать логическое значение. метод itselft возвращает тогда элемент, если 'true', otherwises' undefined' –

ответ

2

Это идеально подходит для фильтрации с Array#filter.

filter() метод создает новый массив со всеми элементами которые проходят тест, реализованный при условии функции.

var topProducts = products.filter(function (product) { 
    return product.importance === importance; 
}); 
Смежные вопросы