按键值数组中的值筛选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您正在使用此代码吗?