Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建复杂嵌套对象和数组中找不到的值数组的简明方法_Javascript - Fatal编程技术网

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

Javascript 创建复杂嵌套对象和数组中找不到的值数组的简明方法,javascript,Javascript,如果mainArray数组中任何对象的数组“numbers”中的键“number”的值都不等于字符串编号33333,那么创建ID数组的简明方法是什么呢。我知道我可以创建一个for循环,但我很好奇是否有更简单的方法来实现这一点 var mainArray = [ { id:"1", "numbers":[ {number:"11111"}, {n

如果mainArray数组中任何对象的数组“numbers”中的键“number”的值都不等于字符串编号33333,那么创建ID数组的简明方法是什么呢。我知道我可以创建一个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"]

首先通过检查
数字
子数组是否包含与
部分
匹配的值来过滤数组,然后映射到ID

var mainArray=[
{   
id:“1”,
“数字”:[
{编号:“11111”},
{编号:“22222”},
]
},
{   
id:“2”,
“数字”:[
{编号:“33333”},
{编号:“44444”},
]
},
{   
id:“3”,
“数字”:[
{编号:“55555”},
{编号:“66666”},
]
},
]
常量输出=主数组
.filter(obj=>!obj.numbers.some({number})=>number=='33333'))
.map(({id})=>id);

控制台日志(输出)
首先通过检查
数字
子数组是否包含与
部分
匹配的值来过滤数组,然后映射到ID

var mainArray=[
{   
id:“1”,
“数字”:[
{编号:“11111”},
{编号:“22222”},
]
},
{   
id:“2”,
“数字”:[
{编号:“33333”},
{编号:“44444”},
]
},
{   
id:“3”,
“数字”:[
{编号:“55555”},
{编号:“66666”},
]
},
]
常量输出=主数组
.filter(obj=>!obj.numbers.some({number})=>number=='33333'))
.map(({id})=>id);

控制台日志(输出)
的替代品!有些
是every:
对象编号。every({number}=>number!==“33333”)
。有一种更具语义的方法。:-)@polar我发现您经常会错过将有用的答案标记为单击勾号即可解决的问题。
的替代方案!有些
是every:
对象编号。every({number}=>number!==“33333”)
。有一种更具语义的方法。:-)@polar我发现您经常会错过将有用的答案标记为单击勾号即可解决的问题。