![](/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.