Javascript 从主阵列创建较小的阵列

Javascript 从主阵列创建较小的阵列,javascript,arrays,Javascript,Arrays,我有一系列的产品。我想创建第二个数组,仅当第一个数组中的每个项目都符合条件时,才会填充该数组。 我知道我可以使用for循环,但我希望我可以使用一种新的数组方法(map,some,find,reduce),但到目前为止都没有成功。 我有这个: var topProducts = products.find(function (product) { if (product.importance === importance) { return product; } }

我有一系列的产品。我想创建第二个数组,仅当第一个数组中的每个项目都符合条件时,才会填充该数组。 我知道我可以使用for循环,但我希望我可以使用一种新的数组方法(map,some,find,reduce),但到目前为止都没有成功。 我有这个:

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

但它只是返回它找到的第一个产品。我希望它返回找到的所有产品(这永远不会是产品阵列中的所有产品。

它非常适合使用进行过滤

filter()
方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素


这是完美的过滤功能

filter()
方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素


查看函数范例

查看函数范例

顺便说一句,find的回调应该返回布尔值。方法本身返回元素,如果
true
,否则
未定义
btw,find的回调应该返回布尔值。方法本身返回元素,如果
true
,否则
未定义
var topProducts = products.filter(function (product) {
    return product.importance === importance;
});