Javascript 创建复杂嵌套对象和数组中找不到的值数组的简明方法
如果mainArray数组中任何对象的数组“numbers”中的键“number”的值都不等于字符串编号33333,那么创建ID数组的简明方法是什么呢。我知道我可以创建一个for循环,但我很好奇是否有更简单的方法来实现这一点Javascript 创建复杂嵌套对象和数组中找不到的值数组的简明方法,javascript,Javascript,如果mainArray数组中任何对象的数组“numbers”中的键“number”的值都不等于字符串编号33333,那么创建ID数组的简明方法是什么呢。我知道我可以创建一个for循环,但我很好奇是否有更简单的方法来实现这一点 var mainArray = [ { id:"1", "numbers":[ {number:"11111"}, {n
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我发现您经常会错过将有用的答案标记为单击勾号即可解决的问题。