Javascript 从对象数组中删除对象

Javascript 从对象数组中删除对象,javascript,arrays,loops,object,underscore.js,Javascript,Arrays,Loops,Object,Underscore.js,我有如上所示的对象数组。和一个名为delete_id的变量 Object {Results:Array[3]} Results:Array[3] [0-2] 0:Object id=1 name: "Rick" upper:"0.67" 1:Object id=2 name:'david' upper:"0.46" 2:O

我有如上所示的对象数组。和一个名为delete_id的变量

Object {Results:Array[3]}
Results:Array[3]
[0-2]
    0:Object
           id=1     
           name: "Rick"
           upper:"0.67"
    1:Object
           id=2     
           name:'david'
           upper:"0.46"
    2:Object
           id=3     
           name:'ashley'
           upper:null
这表示id为1和2的对象。它应该删除对象数组中的对象,并给出如下最终结果:

delete_id = 1,2
有人能告诉我如何做到这一点吗。我尝试使用下面的函数。它只删除变量delete_id中的第一个值,即id为1的值被删除。类似地,如果我们有delete_id=2,3,那么它只删除2。我想同时删除2和3

Object {Results:Array[1]}
Results:Array[3]
[0]
    0:Object
           id=3     
           name:'ashley'
           upper:null
首先从 数组(tabledata),value=1(delete_id),key=json中的key(id)

获取数组中该对象的索引

删除其索引

您可以使用
.split()
.map()
delete\u id
字符串转换为数字id数组。然后,您可以使用
.filter()
进行清理

var玩家=[
{
id:1,
姓名:“瑞克”,
上限:“0.67”
},{
id:2,
姓名:“大卫”,
上:“0.46”
},{
id:3,
姓名:“艾希礼”,
上限:空
}
];
var delete_id=“1,2”;
var exclude=delete_id.split(',').map(Number);
players=players.filter(函数(播放器){
返回exclude.indexOf(player.id)=-1;
});

控制台日志(播放器)如果更改removeID代码以查看索引是否等于-1,则代码将运行

函数removeID(删除\u id){
tabledata=tabledata.filter(函数(obj){
返回delete_id.indexOf(obj.id)=-1;//此处添加==-1
});
}
var表格数据=[{
id:1,
姓名:“瑞克”,
上限:“0.67”
}, {
id:2,
姓名:'大卫',
上:“0.46”
}, {
id:3,
姓名:“艾希礼”,
上限:空
}];
var-id=[1,2]//将其定义为数组(不确定是否已定义)
removeID(ids);

console.log(tabledata)我假设delete\u id是一个整数数组。在这种情况下,您可以使用下面的代码过滤以排除提供的ID

它将检查obj.id是否不在delete_id中,然后obj将包含在新的筛选数组中。它还将保持tabledata的完整性

    tabledata.splice(index,1);

?我可以使用splice从对象数组中删除吗?数组是数组,否?
delete\u id=1,2
@RC-它是字符串。
function findObj(array,value,key) {
            var result = array.filter(function (obj) {
                if (obj[key] === value || obj[key] == value)
                    return obj;
            });
            return result;
        };
    var selectedObj=findObj(tabledata,delete_id,'id');
    var index=tabledata.indexOf(selectedObj[0]);
    tabledata.splice(index,1);
var filtered = tabledata.filter(function(obj) {
   return !(obj.id in delete_id)
})