【发布时间】:2017-08-15 07:44:57
【问题描述】:
我在从 javascript 数组中获取值时遇到问题。
var color = new Array();
for (var i = 0; i < datafeatures.length - 1; i++) {
color[datafeatures[i].properties.userid] = datafeatures[i].properties.linecolor;
}
snapshot.forEach(function (childSnapshot) {
var colour = childSnapshot.wp_user;
console.log(color[colour]);
console.log(JSON.stringify(color));
console.log(color);
console.log(colour);
}
Console.log 结果:
颜色[颜色]:未定义
JSON.stringify(color): []
颜色:
[]
26: "#9d36ee"
45: "#b1c743"
56: "#f9c53c"
61: "#d770ce"
63: "#267fa1"
64: "#85002f"
68: "#78eca8"
92: "#a4a2e7"
length: 93
__proto__: Array(0)
颜色: 61
颜色[颜色]的预期输出:“#d770ce”
颜色[颜色]的实际输出:未定义。
Color 里面有东西,Color 是一个数字(键),但似乎不可能从 Color 中获取值..
【问题讨论】:
-
您的颜色很可能有问题,我们无法测试您的代码,因为我们无法测试有问题的区域。请创建测试环境或创建假数组以查看其工作原理。
-
你在遍历
snapshot,那个变量是正确的吗? -
为了一致性和代码清晰性(也按照惯例),您应该将数组(或对象)命名为
colours及其元素之一colour。将数组命名为color及其元素之一colour只是令人困惑。 -
@jkris 是的,
console.log(JSON.strinify(color));返回[],正如您在下面的回答中指出的那样,将颜色数组更改为对象时,它返回{} -
在forEach
console.log(color)之前做一个控制台日志
标签: javascript arrays dynamic key