2017-07-15 125 views
0

新问题上的阵列,因此这是阵列获取数组键删除的基于数组对象

[ 
    0: { 
     "id" : "3" 
     "name": "David", 
     "age": "20" 
    }, 
    1: { 
     "id" : "6" 
     "name": "", 
     "age": "18" 
    }, 
    2: { 
     "id" : "8" 
     "name": "Micheal", 
     "age": "25" 
    }, 
    3: { 
     "id" : "9" 
     "name": "Wonder Women", 
     "age": "20" 
    }, 
    4: { 
     "id" : "12" 
     "name": "Clark", 
     "age": "" 
    } 
] 

如何删除基于ID,当我点击一个按钮?在我的应用程序中有一个删除按钮来删除这个数组。我认为它需要获得数组密钥才能删除数组。

例如:我可以得到id = 8,但我怎么能得到数组键2删除2号数组?

如果您不明白,欢迎发表评论。谢谢。

+0

你确定这是有效数组吗? – Andrew

+0

只是一个例子。那1,2,3,4不应该在那里 –

+0

只是为了解释目的 –

回答

1
,如果你想直接操纵数组的内容,而不是

返回新的数组,你可以试试这个

let index = array.findIndex(obj => obj.id == objIdToDelete) 
if(index != -1) { array.splice(index, 1) } 

检查Array.prototype.splice()了解更多

+0

作为从阵列中移除元素的场合,这是一个好方法,但在反应中使用拼接时要小心。 – Andrew

0

假设你的阵列存储在OBJ,您可以使用lodash功能删除在通过以下方式数组中删除项目。

_.remove(obj, function(currentObject) { 
    return currentObject.id == "8"; 
}); 

这将删除项目“2”包含从阵列

+0

。删除工作?我致力于reactjs –

+0

@AlanYong,它是[lodash](https://lodash.com/docs/4.17.4) – Andrew

+0

@AlanYong这是一个伟大的图书馆使用。 –

3
array.filter((obj) => { 
    if (obj.id != yourId){ 
     return obj; 
    } 
}) 

“8”,不要忘记所有的逗号在阵列的对象。 (后ID)

1

假设你的数组是这样的:

arr = [ 
    {"id":"3","name":"Clark"}, 
    {"id":"6","name":"David"}, 
    {"id":"8","name":"Miche"} 
]; 

id = 6; 

arr = $.grep(arr, function(data, index) { 
    return data.id != id 
}); 

现在终于这将返回数组删除ID的纪录= 6

+0

我致力于reactjs。因此.grep不能使用 –