gpt4 book ai didi

javascript - 根据第二个数组中的值过滤对象数组

转载 作者:行者123 更新时间:2023-11-30 07:20:23 26 4
gpt4 key购买 nike

我有一个对象数组,我想根据任何键的值是否与另一个数组中的任何值匹配来过滤以创建一个新数组。

const array1 = [{name: 'pink', id: 13}, {name: 'orange', id: 17}, {name: 'red, id: 64}, {name: 'purple', id: 47}, {name: 'yellow', id: 23}, {name: 'gray', id: 2}, {name: 'black', id: 200}, {name: 'violet', id: 4}]

const array2 = ['red', 'blue', 'green', 'pink']

我试过在返回函数中使用 for...of 循环,但这会给我带来错误。

    const array3 = array1.filter(color => {
for (mainColor of array2){
return color.name === mainColor
}
});

这行得通,但显然不是最好的方法。

    const array3 = array1.filter(color => {
return (color.main === 'red') || (color.main === 'blue')
});

如何从 array1 中获取第三个数组,该数组仅包含 array1.name 与 array2 中的值匹配的对象?

ES6 或 Lodash 有可能吗?

提前致谢!

最佳答案

差不多了,不用 for 循环使用 includesreturn

const array3 = array1.filter(color => {
return array2.includes ( color.name );
});

或者

const array3 = array1.filter( color => array2.includes ( color.name ) );

关于javascript - 根据第二个数组中的值过滤对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49134025/

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