我想在javascript中获取一个MD对象,我现在有一些东西,但这不是我想要的:
{"usernames":["Ted","Mikey"],"room_status":[0,0]}
我的想法是,我希望将房间状态值0分配给Ted和Mikey。所以我可以使用:
$.each(usernames, function(index, value){
//do stuff
})
...循环浏览名称并查看哪个房间状态值分配给谁...我也尝试了以下内容:
usernames = {
'username' : {
'username' : username,
'room_status' : 0
}
}
返回:
{"username":{"username":"asdfgasdc","room_status":0}}
但会覆盖最后一项......
答案 0 :(得分:2)
var users = [{
username: 'Ted',
room_status: 0
}, {
username: 'Mikey',
room_status: 0
}];
这为您提供了一组对象,您可以直接循环或访问
$.each(users, function(index, user){
console.log(user.username + ' - ' + user.room_status);
});
// Ted - 0
// Mikey - 0
var user = users[0];
console.log(user.username + ' - ' + user.room_status);
// Ted - 0
答案 1 :(得分:1)
您可以轻松地将用户名用作键:
var people = {
Mike: { room_status: 0 },
Ted: { room_status: 0 }
}
用for循环遍历它们:
for(var person in people){
people[person].room_status
}
甚至直接访问它们:
people.Mike.room_status
建议将每个人吸引到prototype
并将其分配到username
,这样您就可以轻松检查for循环中的法线(又名if( people[person] instanceof Person ) // run code
),忽略object
可能存在的任何可能的默认函数或原型函数。
答案 2 :(得分:0)
更改此
usernames = {
'username' : {
'username' : username,
'room_status' : 0
}
}
到
usernames[username] = {
'username' : username,
'room_status' : 0
}
因为每个循环都会覆盖'username'
键
var usernames = {};
var usernamesList = ["Ted","Mikey"];
for(var i=0;i < usernamesList.length;i++){
var username = usernamesList[i];
usernames[username] = {
'username' : username,
'room_status' : 0
}
}
会给你
usernames : {
Ted:{username:'Ted',room_status:0},
Mikey:{username:'Mikey',room_status:0}
}
主叫:
usernames['Ted'].room_status
或usernames.Ted.room_status
将返回0