![](/img/trans.png)
[英]ES6 - Create new array from an array based on key name using javascript es6
[英]Delete list of objects based from an array ids using ES6
我有一個包含ID的數組和包含在數組中的相同ID的對象列表,如何從數組ID中刪除對象?
數組:
user_ids: [“id001”, “id004”]
對象列表:
{
{
“user_id”: “id001”,
“city”: “Seattle”
},
{
“user_id”: “id002”,
“city”: “Los Angeles”
},
{
“user_id”: “id003”,
“city”: “San Francisco”
},
{
“user_id”: “id004”,
“city”: “San Diego”
}
}
因此結果將是:
{
{
“user_id”: “id002”,
“city”: “Los Angeles”
},
{
“user_id”: “id003”,
“city”: “San Francisco”
}
}
數組方法
Array.prototype.filter()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
filter()方法創建一個新數組,其中所有元素都通過了由提供的函數實現的測試。
Array.prototype.includes()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
includes()方法確定數組是否包含某個元素,並在適當時返回true或false。
let user_ids = ["id001", "id004"]; let list = [ { "user_id": "id001", "city": "Seattle" }, { "user_id": "id002", "city": "Los Angeles" }, { "user_id": "id003", "city": "San Francisco" }, { "user_id": "id004", "city": "San Diego" } ]; console.log(list.filter( o => !(user_ids.includes(o.user_id)) ));
如果對象列表是數組,則可以這樣操作:
for (var i = 0;i<object_list.length;i++){
if (object_list[i]["user_id"] in user_ids){
object_list.splice(i, 1);
}
}
如果它是一個對象,則可以通過以下方式完成:
for (var i in object_list){
if (object_list[i]["user_id"] in user_ids){
delete object_list[i];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.