2017-07-15 86 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不能使用 –