gpt4 book ai didi

如果属性与列表匹配,Javascript 如何在 json 数组上使用 array.filter 返回整个数组

转载 作者:行者123 更新时间:2023-11-30 14:42:31 27 4
gpt4 key购买 nike

我需要有关如何过滤数组的帮助,

在 user_array 中,我有一些数组,如果 header_info.sap_numbervalid_sap_number array 中的任何内容匹配,我必须在其中进行比较,

如果该属性值与 valid_sap_number 数组 中的任何内容匹配,

它将保留该数组及其父数组,然后删除所有与 valid_sap_number 数组 中的任何值不匹配的其他数组,我不知道如何正确解释它,所以请参阅我的示例,谢谢,

我有这样的数组,

var valid_sap_number = ['1','2']
var user_array =
[{
"name":"User1",
"header_info": [{ "sap_number":"1" }],
"footer_info": [{ "site":"ABC" }]
}],
[{
"name":"User2",
"header_info": [{ "sap_number":"2" }],
"footer_info": [{ "site":"ABCD" }]
}],
[{
"name":"User3",
"header_info": [{ "sap_number":"3" }],
"footer_info": [{ "site":"ABC" }]
}];

/* This is my spaghetti code */

const result = user_array.filter(user => function(a,b){
for(i = 0; i < valid_sap_number.length; i++)
{
if(b.header_info[0].sap_number == valid_sap_number[i]){
return true;
}
}
});

console.log(result);

预期输出

result =    [{
"name":"User1",
"header_info": [{ "sap_number":"1" }],
"footer_info": [{ "site":"ABC" }]
}],
[{
"name":"User2",
"header_info": [{ "sap_number":"2" }],
"footer_info": [{ "site":"ABCD" }]
}];

最佳答案

您可以在过滤器函数中使用数组 includes 函数来检查当前项是否与值列表中的任何项匹配。

const result = user_array.filter(user => { 
return valid_sap_number.includes(user[0].header_info[0].sap_number);
});

关于如果属性与列表匹配,Javascript 如何在 json 数组上使用 array.filter 返回整个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49441423/

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