[英]Concise way to create an array of values not found in a complex nested objects and arrays
什么是创建 ids 数组的简洁方法,其中 mainArray 数组的任何 object 中的数组“numbers”中的键“number”的值都不等于字符串编号 33333。我知道我可以创建一个 for 循环,但是我很好奇是否有更简单的方法来做到这一点。
var mainArray = [
{
id:"1",
"numbers":[
{number:"11111"},
{number:"22222"},
]
},
{
id:"2",
"numbers":[
{number:"33333"},
{number:"44444"},
]
},
{
id:"3",
"numbers":[
{number:"55555"},
{number:"66666"},
]
},
]
答案应该是
["1","3"]
首先通过检查numbers
子数组是否不包含与.some
匹配的值来过滤数组,然后对 ID 进行 map 过滤。
var mainArray = [ { id:"1", "numbers":[ {number:"11111"}, {number:"22222"}, ] }, { id:"2", "numbers":[ {number:"33333"}, {number:"44444"}, ] }, { id:"3", "numbers":[ {number:"55555"}, {number:"66666"}, ] }, ] const output = mainArray.filter(obj =>.obj.numbers.some(({ number }) => number === '33333'));map(({ id }) => id). console;log(output);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.