在对象Javascript中添加/更改值

时间:2018-04-25 11:44:46

标签: javascript arrays reactjs object socket.io

我有一个名为clients的对象。

var clients = {"username" : test, "socket": asdasdkje3sf};

但我想添加更多客户端。如果我按以下方式添加客户端:

clients = {
  "username" : username,
  "socket": socket.id
};

每次添加新值时都会被覆盖。 我试过这种方式:

clients += {
  "username" : username,
  "socket": socket.id
};

如果我执行console.log(clients)它似乎有效,但会返回[object][object][object][object]

我该如何阅读这些物品?这是最好的方法吗?

提前谢谢!

4 个答案:

答案 0 :(得分:3)

  

我该如何阅读这些物品?这是最好的方法吗?

使用数组而不是对象。

var clients = [{"username" : test, "socket": asdasdkje3sf}];

使用++

而不是通过push添加
clients.push({
  "username" : username,
  "socket": socket.id
});

答案 1 :(得分:1)

您需要使用数组数据结构,您可以在其中推送clients的每个对象。你正在做的方式不正确,因为它将对象与另一个导致无效JSON对象的对象连接起来。

var clients = [];
clients.push({
     "username" : 'username1',
     "socket": 'socket.id1'
});


clients.push({
  "username" : 'username2',
  "socket": 'socket.id2'
});

console.log(clients);

答案 2 :(得分:0)

您可能需要一组对象(客户端)。

var clients = [{"username" : test, "socket": asdasdkje3sf}];

通过这种方式,您可以轻松地将新客户推送到它。

var newClient = {"username": "another name", "socket": "foobar"};
clients.push(newClient);

push()是一个数组method provided by JavaScript

答案 3 :(得分:0)

要阅读或显示和使用对象,

console.log(clients.username + "|" + clients.socket)

添加上面的答案将对象添加到数组中,如果您计划合并两个以上的数组,也可以使用concat而不是push。不同之处在于推动'更新相同的数组,'联系'合并并返回一个新数组