Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在对象Javascript中添加/更改值_Javascript_Arrays_Reactjs_Object_Socket.io - Fatal编程技术网

在对象Javascript中添加/更改值

在对象Javascript中添加/更改值,javascript,arrays,reactjs,object,socket.io,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

我有一个名为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]

我怎样才能读懂这些东西?这是最好的方法吗

提前谢谢你

我怎样才能读懂这些东西?这是最好的方法吗

使用数组,而不是对象

var clients = [{"username" : test, "socket": asdasdkje3sf}];
不要通过
++
添加,而是使用
push

clients.push({
  "username" : username,
  "socket": socket.id
});

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

通过这种方式,您可以轻松地将新客户推到it上

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

push()。这样做是不正确的,因为它将对象与另一个对象连接在一起,从而导致JSON对象无效

var客户机=[];
客户,推({
“用户名”:“username1”,
“套接字”:“socket.id1”
});
客户,推({
“用户名”:“username2”,
“套接字”:“socket.id2”
});

console.log(客户端)读取或显示以及对象使用

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

若要将对象添加到数组中,若要合并两个以上的数组,还可以使用concat而不是push。区别在于“推送”更新同一数组,“联系人”合并并返回一个新数组

客户端
应该是一个数组,而不是对象可能的副本
console.log(clients.username + "|" + clients.socket)