将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是和否,我故意省略了所有逻辑:)哦,我明白了。。。没有意识到//逻辑
-注释:您可以从数组中获取每个对象,为什么必须更改放入数组的方式?您可以从数组中获取每个对象,为什么必须更改放入数组的方式?