Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays - Fatal编程技术网

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搜索结果是:“按属性从数组中删除对象”。这将返回带有不匹配标签的单个对象,但他想重新创建