Javascript 将对象复制到数组
我正在尝试将对象Javascript 将对象复制到数组,javascript,arrays,json,list,object,Javascript,Arrays,Json,List,Object,我正在尝试将对象userinfo复制到数组中。当我尝试控制台记录新阵列时,我一直处于未定义状态。任何帮助都将不胜感激 JS: var JSONstring=[{ “名称”:“测试”, “财产”:{ “年龄”:“19r”, “用户信息”:{ “城市”:“达拉斯”, “州”:“德克萨斯州” } } }]; $(文档).ready(函数(){ var userinfo={}; 对于(var i=0;i
userinfo
复制到数组中。当我尝试控制台记录新阵列时,我一直处于未定义状态。任何帮助都将不胜感激
JS:
var JSONstring=[{
“名称”:“测试”,
“财产”:{
“年龄”:“19r”,
“用户信息”:{
“城市”:“达拉斯”,
“州”:“德克萨斯州”
}
}
}];
$(文档).ready(函数(){
var userinfo={};
对于(var i=0;i
实际上,您当前的代码中有几个问题:
- 写入
是不正确的,如果你想访问userinfo[user]
对象的userinfo
属性,你需要给它一个字符串,比如user
或者直接userinfo[“user”]
userinfo.user
- 最后,您试图记录
,这是userinfo[0]
未定义的
因为
是userinfo
而不是对象
,所以需要 将其更改为:数组
console.log(userinfo.user[0])
- 如果要在数组中存储
对象,应将user
替换为push(i)
push(user)
var JSONstring=[{
“名称”:“测试”,
“财产”:{
“年龄”:“19r”,
“用户信息”:{
“城市”:“达拉斯”,
“州”:“德克萨斯州”
}
}
}];
$(文档).ready(函数(){
var userinfo={};
对于(var i=0;i
userinfo[user]
没有什么意义,user
不是未定义就是一个对象。对象键始终是字符串。因此,在您的示例中,对象类型存在一些问题。JSONstring变量是一个对象,它没有.length成员。您的userinfo“array”也是一个对象。请注意,变量名JSONstring
极易误导,因为变量的值是数组,而不是字符串(包含JSON)。调用JavaScript对象“JSON”是一个(不幸的)常见错误。@FelixKling ok将保留该错误mind@Ken:NVM then:)为什么console.log现在是0?因为循环中需要i
,我们应该push(user)
,我编辑了我的答案。
var JSONstring = [{
"name": "test",
"properties": {
"age": "19r",
"userinfo": {
"city": "Dallas",
"state": "Texas"
}
}
}];
$(document).ready(function() {
var userinfo = {};
for (var i = 0; i < JSONstring.length; i++) {
var user = JSONstring[i].properties.userinfo;
if (user === undefined) {
continue;
} else if (userinfo[user] === undefined) {
userinfo[user] = [];
userinfo[user].push(i);
} else {
userinfo[user].push(i);
}
}
console.log(userinfo[0]);
});