gpt4 book ai didi

javascript - 从数组javascript中按键获取值

转载 作者:行者123 更新时间:2023-11-29 19:02:43 24 4
gpt4 key购买 nike

我在从 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);
}

控制台日志结果:

颜色[颜色]:未定义

JSON.stringify(颜色): []

颜色:

[]
26: "#9d36ee"
45: "#b1c743"
56: "#f9c53c"
61: "#d770ce"
63: "#267fa1"
64: "#85002f"
68: "#78eca8"
92: "#a4a2e7"
length: 93
__proto__: Array(0)

颜色:61

color[colour] 的预期输出:“#d770ce”

color[colour] 的实际输出:未定义。

Color里面有东西,Color是一个数字(key),但是好像不可能从Color中得到一个值..

最佳答案

你可能想尝试换行

var color = new Array();

var color = {};

您可能要查找的不是数组,而是 javascript 中的术语对象

编辑

查看源代码并进行一些调试后,问题似乎出在异步执行上。你是 color 变量稍后被填充,这解释了为什么 JSON.stringify 在打印 console.log 时产生一个空对象> 维护对变量的引用。

您需要确保首先填充 color 变量。

关于我如何调试它的一些步骤,(使用 chrome):

  • 打开 Chrome 开发者工具 (Ctrl+Shift+I)
  • 转到控制台
  • 点击打印undefined的行号
  • 您应该被转到 sources 选项卡,您将在其中看到您的源代码
  • 点击行号(在本例中为 407)添加断点
  • 在开发工具窗口刷新,(Ctrl+R)
  • javascript 执行应该在调试器处停止
  • 在此状态下,将鼠标悬停在源代码上的变量上以查看它们在该时间点的值
  • 你会发现color确实是一个空对象
  • 那么回溯一下color是如何被填充的
  • 找到嵌套在这段代码下的 d3.json(
  • 那是你知道你遇到了异步问题的时候

关于javascript - 从数组javascript中按键获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45688493/

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