Javascript 如何从数组中删除具有给定属性的对象
我有一个包含多个对象的数组,如下所示。如何删除包含特定值的完整对象Javascript 如何从数组中删除具有给定属性的对象,javascript,arrays,Javascript,Arrays,我有一个包含多个对象的数组,如下所示。如何删除包含特定值的完整对象 var cars= [ {key: 'browser', label: 'Chrome'}, {key: 'browser', label: 'Firefox'}, {key: 'browser', label: 'Safari'} ]; 例如,要删除的对象是那些包含标签chrome和safari的对象 我遇到过一维值数组的例子,但这是一个对象数组。只需在数组中循环,并通过检查属性是否为给定值来删除不需要的项。请注意,您需要
var cars= [
{key: 'browser', label: 'Chrome'},
{key: 'browser', label: 'Firefox'},
{key: 'browser', label: 'Safari'}
];
例如,要删除的对象是那些包含标签chrome和safari的对象
我遇到过一维值数组的例子,但这是一个对象数组。只需在数组中循环,并通过检查属性是否为给定值来删除不需要的项。请注意,您需要从最后一个循环到第一个循环,以便索引在每次迭代中都是正确的
var cars= [
{key: 'browser', label: 'Chrome'},
{key: 'browser', label: 'Firefox'},
{key: 'browser', label: 'Safari'}
];
for(var i = cars.length -1; i >= 0 ; i--){
if(cars.label == "Safari" || cars.label == "Chrome"){
cars.splice(i, 1);
}
}
只需在数组中循环并通过检查属性是否为给定值来删除不需要的项。请注意,您需要从最后一个循环到第一个循环,以便索引在每次迭代中都是正确的
var cars= [
{key: 'browser', label: 'Chrome'},
{key: 'browser', label: 'Firefox'},
{key: 'browser', label: 'Safari'}
];
for(var i = cars.length -1; i >= 0 ; i--){
if(cars.label == "Safari" || cars.label == "Chrome"){
cars.splice(i, 1);
}
}
您可以使用仅返回某些值或仅排除某些值
var-cars=[
{键:'browser',标签:'Chrome'},
{key:'browser',label:'Firefox'},
{键:'browser',标签:'Safari'}
];
//只按你想要的东西过滤
var firefoxOnly=cars.filter(函数(项){
return item.label===“Firefox”;
});
console.log(仅限Firefox);
//过滤掉你不想要的东西
var notChromeSafari=汽车过滤器(功能(项目){
return item.label!=='Chrome'和&item.label!=='Safari';
});
控制台日志(notChromeSafari);
//或者做一组排除,过滤掉你不想要的东西
//你也可以把它列成一个包含的列表,
//这与此相反。我将把它作为练习留给读者。
风险排除=['Chrome','Safari'];
var筛选=车辆。筛选(功能(项目){
//仅返回不在排除列表中的项目
返回排除项。indexOf(item.label)=-1;
});
console.log(过滤)代码>您可以使用仅返回某些值或仅排除某些值
var-cars=[
{键:'browser',标签:'Chrome'},
{key:'browser',label:'Firefox'},
{键:'browser',标签:'Safari'}
];
//只按你想要的东西过滤
var firefoxOnly=cars.filter(函数(项){
return item.label===“Firefox”;
});
console.log(仅限Firefox);
//过滤掉你不想要的东西
var notChromeSafari=汽车过滤器(功能(项目){
return item.label!=='Chrome'和&item.label!=='Safari';
});
控制台日志(notChromeSafari);
//或者做一组排除,过滤掉你不想要的东西
//你也可以把它列成一个包含的列表,
//这与此相反。我将把它作为练习留给读者。
风险排除=['Chrome','Safari'];
var筛选=车辆。筛选(功能(项目){
//仅返回不在排除列表中的项目
返回排除项。indexOf(item.label)=-1;
});
console.log(过滤)代码>您可以使用函数来实现这一点
var-cars=[{
键:“浏览器”,
标签:“铬”
}, {
键:“浏览器”,
标签:“Firefox”
}, {
键:“浏览器”,
标签:“Safari”
}];
让removeKeys=[“Safari”,“Chrome”];
让filteredArray=cars.filter((obj)=>removeKeys.indexOf(obj.label)=-1);
控制台日志(filteredArray)代码>您可以使用函数来实现这一点
var-cars=[{
键:“浏览器”,
标签:“铬”
}, {
键:“浏览器”,
标签:“Firefox”
}, {
键:“浏览器”,
标签:“Safari”
}];
让removeKeys=[“Safari”,“Chrome”];
让filteredArray=cars.filter((obj)=>removeKeys.indexOf(obj.label)=-1);
控制台日志(filteredArray)代码>首先,您需要找到要删除的对象标签的索引
var cars= [ {key: 'browser', label: 'Chrome'}, {key: 'browser', label: 'Firefox'}, {key: 'browser', label: 'Safari'} ];
for(var i = 0; i < cars.length ; i++)
{
if(cars.label == "Safari" || cars.label == "Chrome")
{
delete cars[i].label
}
}
var cars=[{key:'browser',label:'Chrome'},{key:'browser',label:'Firefox'},{key:'browser',label:'Safari'}];
对于(变量i=0;i
这只会移除lebel。如果要删除整个元素,请使用cars.splice(i,1)
首先需要找到要删除的对象标签的索引
var cars= [ {key: 'browser', label: 'Chrome'}, {key: 'browser', label: 'Firefox'}, {key: 'browser', label: 'Safari'} ];
for(var i = 0; i < cars.length ; i++)
{
if(cars.label == "Safari" || cars.label == "Chrome")
{
delete cars[i].label
}
}
var cars=[{key:'browser',label:'Chrome'},{key:'browser',label:'Firefox'},{key:'browser',label:'Safari'}];
对于(变量i=0;i
这只会移除lebel。如果要移除整个元件,请使用cars.splice(i,1)
此解决方案如何:
var-cars=[
{键:'browser',标签:'Chrome'},
{key:'browser',label:'Firefox'},
{键:'browser',标签:'Safari'}
];
var-arr=[];
对于(变量i=0;i 控制台日志(arr)代码>这个解决方案怎么样:
var-cars=[
{键:'browser',标签:'Chrome'},
{key:'browser',label:'Firefox'},
{键:'browser',标签:'Safari'}
];
var-arr=[];
对于(变量i=0;i 控制台日志(arr)代码>那不是多维数组,它是一个1d对象数组@在你的输出中你只想有{key:'browser',label:'Firefox'}???@HenryDev是的我只想{key:'browser',label:'Firefox'}你想破坏性地删除不需要的元素吗,或者在没有它们的情况下创建一个新数组?下面的谷歌搜索结果是:“按属性从数组中删除对象”。这不是一个多维数组,它是一个1d对象数组@在你的输出中你只想有{key:'browser',label:'Firefox'}???@HenryDev是的,我只想{key:'browser',label:'Firefox'}你想破坏性地删除不需要的元素,还是创建一个没有这些元素的新数组?下面的google搜索结果是:“按属性从数组中删除对象”。这将返回带有不匹配标签的单个对象,但他想重新创建