拼接指定的用户

时间:2017-08-20 12:49:21

标签: javascript

我正在尝试从列表中删除特定用户,我正试图这样做,当用户有一个特定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的用户,但由于某种原因这不起作用。

1 个答案:

答案 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;
        }
    }
}

&#13;
&#13;
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;
&#13;
&#13;