从多个对象数组中删除对象
2019-01-28
144
我有一个类似这样的数组:
var participants = [
{username: "john", time: null},
{username: "samira", time: null},
{username: "mike", time: null},
{username: "son", time:null}
]
我想按用户名删除一个项目:
const index = participants.map(x => {
x.map(y => {
return y.username;
})
}).indexOf(username); //get index of username
participants.splice(index, 1);
因此,用户名的索引返回“-1”,因此参与者数组变为 0?
预期输出,按用户名:“son”:
[
{username: "john", time: null},
{username: "samira", time: null},
{username: "mike", time: null}
]
更新:
结果发现我的数组在一个数组内,就像这样
3个回答
您可以使用数组过滤函数
participants.filter((item) => item.username !== username))
Grissom
2019-01-28
您可以使用 filter 方法或以自己的方式使用 splice 和 map :
participants.splice(participants.map(x => x.username).indexOf(username),1);
OriEng
2019-01-28
您可以使用过滤函数,但过滤不会改变原始数组;因此您必须将结果重新分配给原始变量。 participants =Participants.filter((item) => item.username !== username))
Nimer Awad
2019-01-28