繁体   English   中英

创建在复杂嵌套对象和 arrays 中找不到的值数组的简洁方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM