gpt4 book ai didi

javascript - 与数组比较返回数组 _ lodash

转载 作者:行者123 更新时间:2023-12-01 01:05:15 24 4
gpt4 key购买 nike

let a =  [{
a:1,
b:3,
c:[1, 2, 6]
},
{
a:3,
b:10,
c:[2, 5, 4]
},
{
a:4,
b:3,
c:[7, 12, 6]
},
{
a:4,
b:12,
}]

let b = [2, 6]

我想从与 b 数组匹配的 a 对象返回一个数组。

我用过:

lodash.forEach(b , (value)=>{
lodash.filter(a, {c: value})
}

但这不起作用。我尝试简化我的代码以便更好地理解。

最佳答案

您可以通过查看 b 的值是否包含在 c 中来过滤数组。

var a = [{ a: 1, b: 3, c: [1, 2, 6] }, { a: 3, b: 10, c: [2, 5, 4] }, { a: 4, b: 3, c: [7, 12, 6] }, { a: 4, b: 12 }],
b = [2, 6],
result = a.filter(({ c = [] }) => b.some(v => c.includes(v)));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

要仅获取完全匹配的项目,您可以使用 Array#every而不是Array#some .

var a = [{ a: 1, b: 3, c: [1, 2, 6] }, { a: 3, b: 10, c: [2, 5, 4] }, { a: 4, b: 3, c: [7, 12, 6] }, { a: 4, b: 12 }],
b = [2, 6],
result = a.filter(({ c = [] }) => b.every(v => c.includes(v)));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 与数组比较返回数组 _ lodash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55707169/

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