Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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_Multidimensional Array - Fatal编程技术网

按键值数组中的值筛选JavaScript对象

按键值数组中的值筛选JavaScript对象,javascript,multidimensional-array,Javascript,Multidimensional Array,我有这个数据对象 var data = [ { "address" : "One item", "category" : [1501,1504,1502] }, { "address" : "2 item", "category" : [1507,1502] }, { "address" : "

我有这个数据对象

var data = [ { "address" : "One item", "category" : [1501,1504,1502] },
              { "address" : "2 item", "category" : [1507,1502] },
              { "address" : "zxy item", "category" : [1501,1504] },
              { "address" : "zxy item", "category" : [1507,1509] }
]
我想过滤掉那些没有
1502
category id
的对象,并像下面这样返回新的数据数组。有时,
类别
数组中有一个或多个类别ID

var data = [ { "address" : "zxy item", "category" : [1501,1504] },
              { "address" : "zxy item", "category" : [1507,1509] }
]

请回答我的问题。谢谢。

您可以轻松地使用筛选数组,并仅选择与
1502

var数据=[{
地址:“一件”,
类别:[15011502]
},
{
地址:“2项”,
类别:[15071502]
},
{
地址:“zxy项目”,
类别:[15011504]
},
{
地址:“zxy项目”,
类别:[15071509]
},
];
常量结果=数据过滤器((obj)=>{
退货!对象类别包括(1502);
});
控制台日志(结果)使用和:

const data=[{“地址”:“一项”,“类别”:[150115041502]},{“地址”:“2项”,“类别”:[15071502]},{“地址”:“zxy项”,“类别”:[15011504]},{“地址”:“zxy项”,“类别”:[15071509]};
const res=data.filter(({category=[]})=>!category.includes(1502));
控制台日志(res)您可以尝试使用筛选不符合当前类别中编号的项目:

var数据=[
{“地址”:“一项”、“类别”:[150115041502]},
{“地址”:“2项”,“类别”:[15071502]},
{“地址”:“zxy项目”,“类别”:[15011504]},
{“地址”:“zxy项目”,“类别”:[15071509]}
]
data=data.filter(i=>!i.category.includes(1502));

控制台日志(数据)一个更通用的解决方案可以是对想要的键和值进行闭包,并获取回调函数,而无需搜索硬连线的值

const
数据=[{地址:“一项”,类别:[150115041502]},{地址:“2项”,类别:[15071502]},{地址:“zxy项”,类别:[15011504]},{地址:“zxy项”,类别:[15071509]},
includes=key=>value=>object=>object[key]。includes(value),
categoryIncludes=包括(“类别”),
结果=data.filter(类别包括(1502));
控制台日志(结果)

。作为控制台包装器{max height:100%!important;top:0;}
为什么我的控制台响应为
i.category为null
?@omukiguy,只有在实现代码的数组中,类别项的值可能为null:)为什么我的控制台使用i.category is null进行响应?@omukiguy您正在使用此代码吗?