gpt4 book ai didi

javascript - 使用另一个对象数组过滤 Javascript 对象数组

转载 作者:行者123 更新时间:2023-11-29 10:33:52 25 4
gpt4 key购买 nike

我有 list

var list = [
{name: 'Hello', ads: true, pas: ['Av', 'Sd', 'Qr']},
{name: 'Fre', ads: false, pas: ['Sd', 'Bc']},
{name: 'Nat', ads: false, pas: ['Bc', 'Mo', 'Rr']},
{name: 'Bor', ads: true, pas: ['Bo', 'Be', 'De']},
{name: 'Arg', ads: true, pas: ['Ar', 'Na', 'Br']},
];

数组的过滤

var filter = [
'Sd','Be'
];

我试过使用 filter 但它没有过滤。

list
.filter(function(ls) {
return ls.pas
.filter(function(p){
return filter.indexOf(p) > -1;
})
})

我的预期输出

[
{name: 'Hello', ads: true, pas: ['Av', 'Sd', 'Qr']},
{name: 'Fre', ads: false, pas: ['Sd', 'Bc']},
{name: 'Bor', ads: true, pas: ['Bo', 'Be', 'De']}
];

最佳答案

您可以使用 some()检查当前对象的 pas 数组中的任何元素是否在 filter 数组中。

var list = [
{name: 'Hello', ads: true, pas: ['Av', 'Sd', 'Qr']},
{name: 'Fre', ads: false, pas: ['Sd', 'Bc']},
{name: 'Nat', ads: false, pas: ['Bc', 'Mo', 'Rr']},
{name: 'Bor', ads: true, pas: ['Bo', 'Be', 'De']},
{name: 'Arg', ads: true, pas: ['Ar', 'Na', 'Br']},
];

var filter = [
'Sd','Be'
];

var result = list.filter(function(e) {
return e.pas.some(function(a) {
return filter.indexOf(a) != -1
})
})

console.log(result);

关于javascript - 使用另一个对象数组过滤 Javascript 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40085448/

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