【发布时间】:2020-12-01 07:02:20
【问题描述】:
我想做的是处理 JSON 数据并在退出 for 循环后存储每个对象。但是,obj 每次迭代都会更新,因此objectArray 仅在其中的每个元素中保存 David 的信息。我希望 objArray 保存每个已处理的 JSON 对象(下面的屏幕截图)。 JSON过程是存储搜索用户ID和名称并将它们存储在objectArray中。有人可以帮我弄清楚如何将每个对象存储在objectArray 中吗?提前谢谢你。
const obj = {};
var objectArray = [];
var data = [
{
"userId": "123",
"name": "John",
"phoneNumber": "123-456-6789"
},
{
"userId": "345",
"name": "Summer",
"phoneNumber": "535-631-9742"
},
{
"userId" : "789",
"name": "David",
"phoneNumber": "633-753-1352"
}
]
var dataLen = data.length;
var people = data;
createKeyValue = ((key, value) => {
var temp = {};
temp["value"] = value;
obj[key] = temp;
});
while (dataLen > 0) {
for (let [key, value] of Object.entries(data[0])) {
switch(key) {
case 'userId':
createKeyValue(key, value);
break;
case 'name':
createKeyValue(key, value);
break;
default:
}
}
objectArray.push(obj);
data.shift();
dataLen -= 1;
}
【问题讨论】:
-
data已经是人员对象数组。您希望新数组有什么不同? -
我不太明白你的问题。您能否对其进行编辑/更新,以便显示所需的结果?
-
这里应该发生什么?目前,您将 same 对象
obj多次添加到同一个数组中。所以你会得到objArray,它多次包含同一个对象(不重复)。 -
obj通过引用而不是值来保留属性
标签: javascript arrays for-loop object