gpt4 book ai didi

javascript - 动态构建时无法访问 JSON 对象的属性,但静态构建时可以

转载 作者:行者123 更新时间:2023-11-28 20:35:20 26 4
gpt4 key购买 nike

我已经处理这个问题一个小时了,我需要帮助。这让我有点困惑。考虑一下我的代码中对象的显式设置:

工作案例:

<小时/>
var terms={};
terms[0]={};
terms[1]={"label":"bag","cell_src":"images/bag.jpg","clue_type":"audio","clue_src":"/audio/bus.wav"};
terms[2]={"label":"crayon","cell_src":"images/crayon.jpg","clue_type":"audio","clue_src":"/audio/car.wav"};
terms[3]={"label":"pen","cell_src":"images/pen.jpg","clue_type":"audio","clue_src":"/audio/car.wav"};
terms[4]={"label":"pencil","cell_src":"images/pencil.jpg","clue_src":"/audio/boat.wav"};
terms[5]={"label":"pencil_case","cell_src":"images/pencil_case.jpg","clue_src":"/audio/train.wav"};
terms[6]={"label":"rubber","cell_src":"images/rubber.jpg","clue_src":"/audio/taxi.wav"};
terms[7]={"label":"ruler","cell_src":"images/ruler.jpg","clue_src":"/audio/plane.wav"};
terms[8]={"label":"sharpener","cell_src":"images/sharpener.jpg","clue_src":"/audio/taxi.wav"};
window.terms= terms;
window.terms= terms; // for using globaly

如果我执行 console.log(window.terms[1]);我得到“包”。这就是我想要的。

不工作的情况

<小时/>

如果我没有显式定义 term{} 的值,而是从 json 文件中读取内容并将它们分配给每个枚举索引,如下所示:

var terms={};
terms[0]={};
$.getJSON('content.json', function(data){

$.each(data,function(i){
//terms[i]={"label":"bag","cell_src":"images/bag.jpg","clue_type":"audio","clue_src":"/audio/bus.wav"};
terms[i+1]={"label":data[i].headword,"cell_src":data[i].image,"clue_type":"audio","clue_src":data[i].audio};

});
window.terms=terms;
});

如果我执行 console.log(window.terms[1]);我收到错误“Uncaught TypeError:无法读取未定义的属性'1'”请注意,我有一个替代尝试注释掉了,我消除了我正在尝试的值出现奇怪情况的可能性拉入并明确为所有索引分配相同的静态值。这会产生相同的错误。

有什么想法吗?

最佳答案

$.getJSON 执行 AJAX 调用时不会阻塞。您必须保持回调链处于事件状态。

关于javascript - 动态构建时无法访问 JSON 对象的属性,但静态构建时可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15552321/

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