gpt4 book ai didi

JavaScript 数组 - 使用时长度为 0,但 Chrome 可以看到正确的长度

转载 作者:行者123 更新时间:2023-11-28 18:11:09 25 4
gpt4 key购买 nike

作为一个 JavaScript 新手,这让我简直要发疯了。

我有一个名为 arrayA 的数组,其中包含以下数据(在我的实际代码中,我使用 [] 声明 arrayA,然后使用 $.getJSON 获取包含数据的文件):

 arrayA = [
{
"Key": "Key1",
"Value": {
"info1": "298431",
"info2": "55.035",
"info3": "11.375",
},
"Name": "Key1"
}
]

在我的 HTML 页面中,我有一个脚本标记/部分,它是在那里定义的。在 arrayA 之后,我有一个名为 funcA() 的函数,我在其中尝试执行“操作”,其中包括查找“Key1”的索引等操作。

在行中执行 console.log 时,它始终报告为 0,但使用 Chrome 控制台检查长度时,它会报告正确的对象数量 (8950)。

不太确定问题出在哪里。潜在的变量范围或 arrayA 初始化和加载数据的方式?有人可以帮忙吗?

为了完整性:

<script type="text/javascript">
var arrayA = [];

$.getJSON('./source.json', function(data) {
arrayA = data;
});

function funcA() {
//Do stuff to find indexOf "Key1"
}
</script>

/D

最佳答案

问题很可能是当 funcA() 运行时,数据尚不可用。

试试这个:

<script type="text/javascript">
var arrayA = [];

$.getJSON('./source.json', function(data) {
arrayA = data;
console.log('Data was loaded', arrayA);
});

function funcA() {
//Do stuff to find indexOf "Key1"
console.log('funcA() ran');
}
</script>

然后您将看到事情发生的顺序。当然, $.getJSON 是一个异步函数,你不能依赖事情总是以相同的顺序发生。因此,您应该研究 Promise 或回调,而不是使用全局变量。

关于JavaScript 数组 - 使用时长度为 0,但 Chrome 可以看到正确的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41536720/

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