我正在尝试从列表中删除特定用户,我正试图这样做,当用户有一个特定ID时,他会从列表中拼接出来,由于某种原因,以下代码不会拼接用户但另一个用户,为什么会这样?
这是我使用的以下测试代码:
var users = [];
users.push({
user: 1,
name: 'User1'
});
users.push({
user: 2,
name: 'User2'
});
var interval = setInterval(function(){
console.log(users);
}, 1000);
setTimeout(function(){
users.splice(findUser(2), 1);
}, 5000);
function findUser(id){
for(var i=0; i < users.length; i++){
if(users[i].user === id){
return users[i];
}
}
}
这是fiddle。
首先我将两个人添加到列表中,然后我只有一个测试间隔运行吐出列表中的每个用户,然后在5秒后我删除ID为2的用户,但由于某种原因这不起作用。
答案 0 :(得分:1)
splice
需要删除索引,而不是值。
您可以将findUser
功能修改为findUserIndex
功能:
setTimeout(function(){
users.splice(findUserIndex(2), 1);
}, 5000);
function findUserIndex(id){
for(var i=0; i < users.length; i++){
if(users[i].user === id){
return i;
}
}
}
var users = [];
users.push({
user: 1,
name: 'User1'
});
users.push({
user: 2,
name: 'User2'
});
var interval = setInterval(function(){
console.log(users);
}, 1000);
setTimeout(function(){
users.splice(findUserIndex(2), 1);
}, 5000);
function findUserIndex(id){
for(var i=0; i < users.length; i++){
if(users[i].user === id){
return i;
}
}
}
&#13;