gpt4 book ai didi

javascript - 从存储在数组中的值中过滤数组

转载 作者:行者123 更新时间:2023-12-03 17:56:38 25 4
gpt4 key购买 nike

我有一个数组

sourceArray = [{'type':'A'}, {'type':'B'}, {'type':'C'}, {'type':'D'}];
arrayB = ['B', 'C'];

我想从 arrayB 包含的值中过滤数组 sourceArray。我们可以通过迭代 arrayB 来做到这一点,但只需要一些好的方法来做到这一点。

filteredArray = [];
for(x in arrayB)
{
filteredArray.concat( sourceArray.filter(function(e1){ return e1.type == arrayB[x])} );
}

可以有任何方式更优雅地做到这一点。

最佳答案

只是 .filter 它:

sourceArray = [{'type':'A'}, {'type':'B'}, {'type':'C'}, {'type':'D'}];
arrayB = ['B', 'C'];

result = sourceArray.filter(function(item) {
return arrayB.indexOf(item.type) >= 0;
});

document.write("<pre>" + JSON.stringify(result,0,3));

[].filter(func)迭代数组并收集 func 返回 true 的元素。在我们的函数中,我们检查 arrayB 是否包含 item.type,如果包含则返回 true(参见 indexOf)。

ES6 解决方案,对于那些已经使用它的人:

sourceArray = [{'type':'A'}, {'type':'B'}, {'type':'C'}, {'type':'D'}];
arrayB = ['B', 'C'];

setB = new Set(arrayB)
result = sourceArray.filter(item => setB.has(item.type))

关于javascript - 从存储在数组中的值中过滤数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31913941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com