我很难找到如何使用键从数组中删除对象 - 我只能找到有关键值的建议。例如:
var users = [
{ 1: [{age: 36, active: true}] },
{ 2: [{age: 40, active: false}] },
{ 3: [{age: 37, active: true}]}
];
我想删除 key = 2 的对象,结果如下:
var users = [
{ 1: [{age: 36, active: true}] },
{ 3: [{age: 37, active: true}]}
];
我的数据中的键是唯一的。
答案 0 :(得分:2)
您可以使用 in
运算符来检查对象上是否存在键:
const users = [{"1":[{"age":36,"active":true}]},{"2":[{"age":40,"active":false}]},{"3":[{"age":37,"active":true}]}]
const result = users.filter(o => !('2' in o))
console.log(result)
答案 1 :(得分:1)
您可以尝试使用 Array.prototype.filter()
filter()
方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。
Object.keys()
方法返回给定对象自己的可枚举属性 names 的数组,以与普通循环相同的顺序进行迭代。
var users = [
{ 1: [{age: 36, active: true}] },
{ 2: [{age: 40, active: false}] },
{ 3: [{age: 37, active: true}]}
];
users = users.filter(item => Object.keys(item)[0] != 2);
console.log(users);
答案 2 :(得分:1)
如果您想从原始数组中删除一个对象而不创建新数组,请使用 Array.findIndex
并通过索引删除元素。
var users = [
{ 1: [{age: 36, active: true}] },
{ 2: [{age: 40, active: false}] },
{ 3: [{age: 37, active: true}]}
];
let removableIndex = users.findIndex(ele => ele[2])
users.splice(removableIndex, 1)
console.log(users)