gpt4 book ai didi

javascript - 复制对象到数组

转载 作者:行者123 更新时间:2023-11-30 15:22:18 24 4
gpt4 key购买 nike

我正在尝试将一个对象 userinfo 复制到一个数组中。当我尝试控制台记录新阵列时,我一直未定义。任何帮助将不胜感激!

JS:

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]);
});

JSFiddle Demo

最佳答案

实际上你当前的代码有几个问题:

  • userinfo[user] 是不正确的,如果你想访问 userinfoobject 的 userproperty 你需要给它一个像这样的字符串userinfo["user"] 或直接userinfo.user
  • 最后你尝试记录 userinfo[0]undefined因为 userinfo 是一个 object 而不是一个 array 你需要将其更改为:console.log(userinfo.user[0])
  • 如果您想将 user 对象存储在数组中,您应该将 push(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) {
continue;
} else if (!userinfo.user) {
userinfo.user = [];
userinfo.user.push(user);
} else {
userinfo.user.push(user);
}
}
console.log(userinfo.user[0]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

注意:

if block 中的条件 if (userinfo[user] === undefined) 可以简单地写成 if(!userinfo.user)

关于javascript - 复制对象到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43551993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com