gpt4 book ai didi

javascript - 将 JSON 输出的值添加到 JavaScript 变量上,在循环或异步上失败?

转载 作者:行者123 更新时间:2023-12-03 06:38:51 25 4
gpt4 key购买 nike

我需要从 JSON 获取数组 lenguajes[] 的语言并将其存储在“custom_lenguajes”变量中,但我没有得到。

JSON 输出:

{
- data:
[
- {
DT_RowId: "row_93",
idiomas: "Si",
site: "342800010",
lenguajes:
[
- {
id: "3",
code: "nl"
},
- {
id: "5",
code: "ja"
},
- {
id: "17",
code: "de"
},
- {
id: "19",
code: "en"
},
- {
id: "38",
code: "ru"
}
]
}
],
options:
{},
files: [ ]
}

JS代码:

var custom_lenguajes ="";
$(document).on('pageinit', '#page-1', function() {
// get lenguajes. START
$.getJSON( parser_origin + "/_country/spain/v134/lacarte.restaurants.front/alacarte/php/languages.front.php", { site: id_establecimiento()}, function(data){
for (var i=0, len=data.length; i < len; i++) {
console.log(data[i]);
}
data = data['data'];
data3 = data;
});

// I need create a variable that acummulate languages from JSON, this way: "nl,ja,de,en,ru"
$.each(data3, function(entryIndex, entry) {
$.each(this.lenguajes, function() {
alert(this.code); // don't show nothing. ONLY TEST
custom_lenguajes += this.code + "\,";
console.log(custom_lenguajes); //show "". ONLY TEST
});
});

// get lenguajes. END
...

寻求您的帮助:

  • 如果我使用console.log(data3); (在我的代码上)加载页面时,我可以在控制台 chrome 上看到一个空对象“[]”
  • 之后,(加载页面时),如果我在控制台 chrome 上写入: data3[0].lenguajes[0].code ,它会显示 "nl"。在 Chrome 控制台上看起来它可以工作,但在我的代码上不行。

做错了什么?我的循环或异步有问题吗?

欢迎任何帮助!谢谢!!

最佳答案

Javascript 是异步的,这意味着它不会等待您的 ajax $.getJson() 函数完成后再尝试进入 $.each()环形。尝试将循环放入 $.getJson() 函数中。

var custom_lenguajes ="";
$(document).on('pageinit', '#page-1', function() {
// get lenguajes. START
$.getJSON( parser_origin + "/_country/spain/v134/lacarte.restaurants.front/alacarte/php/languages.front.php", { site: id_establecimiento()}, function(data){
for (var i=0, len=data.length; i < len; i++) {
console.log(data[i]);
}
data = data['data'];
data3 = data;

$.each(data3, function(entryIndex, entry) {
$.each(this.lenguajes, function() {
alert(this.code); // don't show nothing. ONLY TEST
custom_lenguajes += this.code + "\,";
console.log(custom_lenguajes); //show "". ONLY TEST
});
});
});
});

关于javascript - 将 JSON 输出的值添加到 JavaScript 变量上,在循环或异步上失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38062671/

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