我正在编写一个逻辑来控制聊天中的在线用户。我不知道为什么我不能更新数组中的对象。如何更改对象属性。我有点迷茫,因为我希望它能起作用,我不知道出了什么问题。
我的代码:
var users = [];
var isOnline= false;
//check if the user is present in the users array, if it is just update the socket id
for (var i = 0; i < users.length; i++) {
if (users[i].HId == usuario.id) {
console.log("new id " + client.id );
console.log("id before " + users[i].id);
usuarios[i].id == client.id; // value doesn't change
console.log("id after " + users[i].id);
isOnline= true;
}
}
//if the user is not present add him to the array
if(!isOnline)
users.push({ name: user.nome, HId: user.id, id: client.id });
答案 0 :(得分:1)
你的做作错误
应该是
usuarios[i].id = client.id; // value doesn't change
而不是
usuarios[i].id == client.id; // value doesn't change
答案 1 :(得分:0)
更改
usuarios[i].id == client.id; // value doesn't change
要
usuarios[i].id = client.id;
==
是一个逻辑等于。因此usuarios[i].id == client.id
是一个布尔表达式。 usuarios[i].id = client.id
是一项实际的任务。
答案 2 :(得分:0)
==(或者你应该使用的===)会导致true或false。它是一个布尔检查。您想要分配值的是单个等于
usuarios[i].id = client.id; // assigns a value