如何从包含JavaScript的数组中删除一个对象? [英] How do I remove an object from an array with JavaScript?

查看:120
本文介绍了如何从包含JavaScript的数组中删除一个对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个JavaScript对象是这样的:

  ID =1;
NAME =塞尔达

和我有一个包含以上许多对象的数组。我怎样才能删除对象从数组如这样的:

  OBJ [1]一个.remove();


解决方案

好剪接作品:

  VAR ARR = {[ID:1,名称:塞尔达}];
arr.splice(0,1);
// []

不要使用delete删除操作符的阵列。

但也许你想这样的事情?

  VAR removeByAttr =功能(ARR,ATTR,价值){
    VAR I = arr.length;
    当我 - ){
       如果(ARR [I]
           &功放;&安培;改编[I] .hasOwnProperty(ATTR)
           &功放;&安培; (的arguments.length→2&放大器;&放大器;常用3 [Ⅰ] [ATTR] ===值)){           arr.splice(I,1);       }
    }
    返回ARR;
}VAR ARR = {[ID:1,名称:塞尔达},{ID:2,名称:苜蓿},{ID:3,名称:'乔'}]
removeByAttr(ARR,ID,1);
// [{ID:2,名称:苜蓿},{ID:3,名称:'乔'}]removeByAttr(ARR,'名','乔');
// [{ID:2,名称:'紫花苜蓿'}]

只是一个例子

I have an JavaScript object like this:

id="1";
name = "serdar";

and I have an Array which contains many objects of above. How can I remove an object from that array such as like that:

obj[1].remove();

解决方案

Well splice works:

var arr = [{id:1,name:'serdar'}];
arr.splice(0,1);
// []

Do NOT use the delete 'delete' operator on Arrays.

But maybe you want something like this?

var removeByAttr = function(arr, attr, value){
    var i = arr.length;
    while(i--){
       if( arr[i] 
           && arr[i].hasOwnProperty(attr) 
           && (arguments.length > 2 && arr[i][attr] === value ) ){ 

           arr.splice(i,1);

       }
    }
    return arr;
}

var arr = [{id:1,name:'serdar'},{id:2,name:'alfalfa'},{id:3,name:'joe'}];
removeByAttr(arr, 'id', 1);
// [{id:2,name:'alfalfa'},{id:3,name:'joe'}]

removeByAttr(arr, 'name', 'joe');
// [{id:2,name:'alfalfa'}]

Just an example.

这篇关于如何从包含JavaScript的数组中删除一个对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆