[英]Search inside array of objects
我有一個數組,其格式如下:
var clients = [{
"id": 1,
"hash": 5c5fbbb047984ca8eec6dc7a3d994c09,
"more": {...}
},
{
"id": 2,
"hash": 620628ce37817a94476d55e55a543bee,
"more": {...}
},
{...},
{...}];
它包含大約25個對象,但這可以更改。 我的程序獲取一個ID,該ID是一個整數,它需要執行的操作是在clients數組中查找並找到具有指定ID的對象,然后從數組中刪除該對象。
鑒於可能存在相對大量的對象,最好的,最有效的方法是什么?
您可以像這樣使用Array.prototype.filter
函數
var clients = [{"id": 1, "hash": "5c5fbbb047984ca8eec6dc7a3d994c09"},
{"id": 2, "hash": "620628ce37817a94476d55e55a543bee"}];
var idToRemove = 1;
clients = clients.filter(function(currentObject) {
return currentObject.id !== idToRemove;
});
console.log(clients);
輸出量
[ { id: 2, hash: '620628ce37817a94476d55e55a543bee' } ]
您可以遍歷數組並刪除具有給定id
的條目。
function removeClient(clients, id) {
for(var i = 0; i < clients.length; i++) {
if(clients[i].id === id) {
clients.splice(i, 1);
return;
}
}
}
您也可以為此使用Array.prototype.filter
函數,但是由於以下兩個原因,我更喜歡此迭代解決方案:
Array.prototype.filter
是ECMAScript 5功能,直到IE9 IE才支持該功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.