Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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_Object - Fatal编程技术网

将Javascript推入对象

将Javascript推入对象,javascript,object,Javascript,Object,我已经尝试了一段时间了,但是没有得到它 我有一段代码来创建一个对象数组,如下所示: var allUsers = new Array(); function addObjectToArray(userData){ colorCode = '#'+Math.floor(Math.random()*16777215).toString(16); userImage = "avatar"+Math.floor(Math.random()*11)+".jpg"; newuserD

我已经尝试了一段时间了,但是没有得到它

我有一段代码来创建一个对象数组,如下所示:

var allUsers = new Array();
function addObjectToArray(userData){
    colorCode = '#'+Math.floor(Math.random()*16777215).toString(16);
    userImage = "avatar"+Math.floor(Math.random()*11)+".jpg";
    newuserData = {};
    newuserData[userData.userID] = {"nickName":userData.nickName,"SocketId":socket.id,"colorCode":colorCode,"userImage":userImage};
    allUsers.push(newuserData);
}
{ 
   '886': 
     { nickName: 'MOhan',
       SocketId: '9AMRe2v2e-hWuMeBAAAC',
       colorCode: '#d3af07',
       userImage: 'avatar6.jpg' } ,
   '172': 
     { nickName: 'Anil',
       SocketId: 'a5VU5pCzWecMHM2FAAAD',
       colorCode: '#22b913',
       userImage: 'avatar4.jpg' }
}
所以这个函数每次被调用时都会向数组中添加一个新的对象,在使用不同的参数调用这个函数两次之后,我得到一个类似这样的数组

[ { '886': 
     { nickName: 'MOhan',
       SocketId: '9AMRe2v2e-hWuMeBAAAC',
       colorCode: '#d3af07',
       userImage: 'avatar6.jpg' } },
  { '172': 
     { nickName: 'Anil',
       SocketId: 'a5VU5pCzWecMHM2FAAAD',
       colorCode: '#22b913',
       userImage: 'avatar4.jpg' } } ]
我想要的是这样一个对象:

var allUsers = new Array();
function addObjectToArray(userData){
    colorCode = '#'+Math.floor(Math.random()*16777215).toString(16);
    userImage = "avatar"+Math.floor(Math.random()*11)+".jpg";
    newuserData = {};
    newuserData[userData.userID] = {"nickName":userData.nickName,"SocketId":socket.id,"colorCode":colorCode,"userImage":userImage};
    allUsers.push(newuserData);
}
{ 
   '886': 
     { nickName: 'MOhan',
       SocketId: '9AMRe2v2e-hWuMeBAAAC',
       colorCode: '#d3af07',
       userImage: 'avatar6.jpg' } ,
   '172': 
     { nickName: 'Anil',
       SocketId: 'a5VU5pCzWecMHM2FAAAD',
       colorCode: '#22b913',
       userImage: 'avatar4.jpg' }
}

我应该对代码进行哪些更改

简单,从技术上讲,对象不会被推送到,而是在该对象上定义新的关键点。 为对象文本切换数组,只需向其中添加键

var allUsers = {};
function addObjectToObject(userData) {
    //logic
    allUsers[userData.userId] = newuserData;
}

很简单,从技术上讲,对象不会被推送到,而是在该对象上定义新的关键点。 为对象文本切换数组,只需向其中添加键

var allUsers = {};
function addObjectToObject(userData) {
    //logic
    allUsers[userData.userId] = newuserData;
}

是否缺少
newuserData
?@Dwza是和否,我故意省略了所有逻辑:)哦,我明白了。。。没有意识到
//逻辑
-注释:有没有缺少
新用户数据
?@Dwza是和否,我故意省略了所有逻辑:)哦,我明白了。。。没有意识到
//逻辑
-注释:您可以从数组中获取每个对象,为什么必须更改放入数组的方式?您可以从数组中获取每个对象,为什么必须更改放入数组的方式?