【发布时间】:2017-06-30 18:50:10
【问题描述】:
我是 JavaScript 新手。我将以下代码放在一起以获取枚举中的项目,将其推送到数组,然后从数组中读回。由于某种原因,我推送到数组的内容与我读取数组时得到的内容不同。我可以想到一些关于它可能如何发生的理论,例如当我将一个元素从枚举推送到数组时,如果这是数组中的唯一元素,当它被读回时,它将被解释为枚举中的第一个元素但我希望能更好地解释这是如何发生的:这是我的代码:
var dataEnum = {
0: {Name: "A", Number: "1"},
1: {Name: "B", Number: "2"},
2: {Name: "C", Number: "3"},
3: {Name: "D", Number: "4"},
4: {Name: "E", Number: "5"}
};
var dataArray = [];
for (var x in dataEnum) {
if (dataEnum[x].Number == "3") {
dataArray.push(x);
console.log("Object " + x + " with name " + dataEnum[x].Name + " and number " + dataEnum[x].Number + " was pushed in the array");
// Results in:
// Object 2 with name C and number 3 was pushed in the array
}
}
for (var y in dataArray) {
console.log("Object " + y + " with name " + dataEnum[y].Name + " and number " + dataEnum[y].Number + " was read from the array");
// Results in:
// Object 0 with name A and number 1 was read from the array
}
【问题讨论】:
-
问题不清楚。它应该打印什么?
-
您的第二个循环正在打印
dataEnum[y],而不是dataArray[y]。
标签: javascript arrays enums