我试图使用变量和另一个对象从我的对象中获得一个值。第一个变量工作得很好,但是被困在第二个变量上,并且尝试了很多事情,但都没有成功。
console.log(data.data.mengsels_data['mengsels_label_'+counter_i]);
console.log(data.data.mengsels_data['mengsels_label_'+counter_i[sessionStorage.language]]);
console.log(sessionStorage.language);第一行返回;
Object {nl: "April", en: "April", de: ""}第二行返回;
undefined第三行返回
nl我要得到“四月”
后来添加了
在下面的示例中,ajax调用从原来的json检索data,但ajax在对象内部传输它。
只有在这个例子中,我手动地将'var数据‘与完整的ajax响应放在一起,在我的示例中,它没有被传输到对象中。
我的目标是循环每一张图像,并以正确的语言获取图像和标签,什么是图像的一部分。
var data = {
"code": "0",
"success": [],
"error": [],
"data": {
"0": "1",
"mengsels_id": "1",
"1": "Data Removed",
"mengsels_name": "Data Removed",
"2": "-",
"mengsels_description": "-",
"3": "\/media\/mengsels\/data-removed\/data-removed-1.jpg",
"mengsels_cover": "\/media\/mengsels\/data-removed\/data-removed-1.jpg",
"4": "",
"mengsels_folder": "",
"5": "",
"mengsels_video": "",
"6": "1",
"mengsels_visible": "1",
"7": "{\"mengsels_name\":\"Data Removed\",\"mengsels_description\":\"-\",\"mengsels_cover\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-1.jpg\",\"mengsels_img_1\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-1.jpg\",\"mengsels_img_2\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-2.jpg\",\"mengsels_img_3\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-3.jpg\",\"mengsels_img_4\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-4.jpg\",\"mengsels_img_5\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-5.jpg\",\"mengsels_img_6\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-6.jpg\",\"mengsels_img_7\":\"\",\"mengsels_img_8\":\"\",\"mengsels_img_9\":\"\",\"mengsels_img_10\":\"\",\"mengsels_label_1\":{\"nl\":\"Januari\",\"en\":\"Januari\",\"de\":\"\"},\"mengsels_label_2\":{\"nl\":\"Februari\",\"en\":\"Februari\",\"de\":\"\"},\"mengsels_label_3\":{\"nl\":\"Maart\",\"en\":\"March\",\"de\":\"\"},\"mengsels_label_4\":{\"nl\":\"April\",\"en\":\"April\",\"de\":\"\"},\"mengsels_label_5\":{\"nl\":\"Mei\",\"en\":\"May\",\"de\":\"\"},\"mengsels_label_6\":{\"nl\":\"Juni\",\"en\":\"June\",\"de\":\"\"},\"mengsels_label_7\":{\"nl\":\"\",\"en\":\"\",\"de\":\"\"},\"mengsels_label_8\":{\"nl\":\"\",\"en\":\"\",\"de\":\"\"},\"mengsels_label_9\":{\"nl\":\"\",\"en\":\"\",\"de\":\"\"},\"mengsels_label_10\":{\"nl\":\"\",\"en\":\"\",\"de\":\"\"}}",
"mengsels_data": {
"mengsels_name": "Data Removed",
"mengsels_description": "-",
"mengsels_cover": "\/media\/mengsels\/data-removed\/data-removed-1.jpg",
"mengsels_img_1": "\/media\/mengsels\/data-removed\/data-removed-1.jpg",
"mengsels_img_2": "\/media\/mengsels\/data-removed\/data-removed-2.jpg",
"mengsels_img_3": "\/media\/mengsels\/data-removed\/data-removed-3.jpg",
"mengsels_img_4": "\/media\/mengsels\/data-removed\/data-removed-4.jpg",
"mengsels_img_5": "\/media\/mengsels\/data-removed\/data-removed-5.jpg",
"mengsels_img_6": "\/media\/mengsels\/data-removed\/data-removed-6.jpg",
"mengsels_img_7": "",
"mengsels_img_8": "",
"mengsels_img_9": "",
"mengsels_img_10": "",
"mengsels_label_1": {
"nl": "Januari",
"en": "Januari",
"de": ""
},
"mengsels_label_2": {
"nl": "Februari",
"en": "Februari",
"de": ""
},
"mengsels_label_3": {
"nl": "Maart",
"en": "March",
"de": ""
},
"mengsels_label_4": {
"nl": "April",
"en": "April",
"de": ""
},
"mengsels_label_5": {
"nl": "Mei",
"en": "May",
"de": ""
},
"mengsels_label_6": {
"nl": "Juni",
"en": "June",
"de": ""
},
"mengsels_label_7": {
"nl": "",
"en": "",
"de": ""
},
"mengsels_label_8": {
"nl": "",
"en": "",
"de": ""
},
"mengsels_label_9": {
"nl": "",
"en": "",
"de": ""
},
"mengsels_label_10": {
"nl": "",
"en": "",
"de": ""
}
}
}
};
$.ajax({
type: 'GET',
url: "https://xxx.xxx.xx/xxx/x.x/mengsels/?action=view",
data: {
mengsels_id: mengsels_id
},
dataType: 'json',
success: function(data) {
$('#stage').html("");
var counter_i = 0;
for (var match in data.data.mengsels_data) {
var reg = /(mengsels_img_[0-9]{1,})/g;
if (reg.exec(match)) {
if (data.data.mengsels_data[match]) {
$('#stage').append('<div class="slideshow-div slideshow-2" data-counter="' + counter_i + '"> \
<div class="slideshow-image" style="background-image: url(\'https://xxx.xxx.xx' + data.data.mengsels_data[match] + '\');" class="slideshow-image"> \
</div><span></span> \
</div>');
console.log(data.data.mengsels_data['mengsels_label_' + counter_i]);
console.log(data.data.mengsels_data['mengsels_label_' + counter_i][sessionStorage.language]);
console.log(counter_i);
console.log(sessionStorage.language);
console.log(data.data.mengsels_data['mengsels_label_' + counter_i]['nl']);
console.log(data.data.mengsels_data['mengsels_label_' + counter_i].nl);
counter_i++;
}
}
}
}
});发布于 2018-09-05 23:08:53
nl是data.data.mengsels_data['mengsels_label_'+counter_i]和sessionStorage.language === nl的一个属性。所以你应该能够使用:
data.data.mengsels_data['mengsels_label_'+counter_i][sessionStorage.language]
根据新代码编辑:
您所拥有的代码在0上启动计数器,但数据从mengsels_label_1开始,这意味着在第一次迭代时,您要寻找的是不存在的mengsels_label_0。试着从1开始
var data = {"code": "0","success": [],"error": [],"data": {"0": "1","mengsels_id": "1","1": "Data Removed","mengsels_name": "Data Removed","2": "-","mengsels_description": "-","3": "\/media\/mengsels\/data-removed\/data-removed-1.jpg","mengsels_cover": "\/media\/mengsels\/data-removed\/data-removed-1.jpg","4": "","mengsels_folder": "","5": "","mengsels_video": "","6": "1","mengsels_visible": "1","7": "{\"mengsels_name\":\"Data Removed\",\"mengsels_description\":\"-\",\"mengsels_cover\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-1.jpg\",\"mengsels_img_1\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-1.jpg\",\"mengsels_img_2\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-2.jpg\",\"mengsels_img_3\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-3.jpg\",\"mengsels_img_4\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-4.jpg\",\"mengsels_img_5\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-5.jpg\",\"mengsels_img_6\":\"\\\/media\\\/mengsels\\\/data-removed\\\/data-removed-6.jpg\",\"mengsels_img_7\":\"\",\"mengsels_img_8\":\"\",\"mengsels_img_9\":\"\",\"mengsels_img_10\":\"\",\"mengsels_label_1\":{\"nl\":\"Januari\",\"en\":\"Januari\",\"de\":\"\"},\"mengsels_label_2\":{\"nl\":\"Februari\",\"en\":\"Februari\",\"de\":\"\"},\"mengsels_label_3\":{\"nl\":\"Maart\",\"en\":\"March\",\"de\":\"\"},\"mengsels_label_4\":{\"nl\":\"April\",\"en\":\"April\",\"de\":\"\"},\"mengsels_label_5\":{\"nl\":\"Mei\",\"en\":\"May\",\"de\":\"\"},\"mengsels_label_6\":{\"nl\":\"Juni\",\"en\":\"June\",\"de\":\"\"},\"mengsels_label_7\":{\"nl\":\"\",\"en\":\"\",\"de\":\"\"},\"mengsels_label_8\":{\"nl\":\"\",\"en\":\"\",\"de\":\"\"},\"mengsels_label_9\":{\"nl\":\"\",\"en\":\"\",\"de\":\"\"},\"mengsels_label_10\":{\"nl\":\"\",\"en\":\"\",\"de\":\"\"}}","mengsels_data": {"mengsels_name": "Data Removed","mengsels_description": "-","mengsels_cover": "\/media\/mengsels\/data-removed\/data-removed-1.jpg","mengsels_img_1": "\/media\/mengsels\/data-removed\/data-removed-1.jpg","mengsels_img_2": "\/media\/mengsels\/data-removed\/data-removed-2.jpg","mengsels_img_3": "\/media\/mengsels\/data-removed\/data-removed-3.jpg","mengsels_img_4": "\/media\/mengsels\/data-removed\/data-removed-4.jpg","mengsels_img_5": "\/media\/mengsels\/data-removed\/data-removed-5.jpg","mengsels_img_6": "\/media\/mengsels\/data-removed\/data-removed-6.jpg","mengsels_img_7": "","mengsels_img_8": "","mengsels_img_9": "","mengsels_img_10": "","mengsels_label_1": {"nl": "Januari","en": "Januari","de": ""},"mengsels_label_2": {"nl": "Februari","en": "Februari","de": ""},"mengsels_label_3": {"nl": "Maart","en": "March","de": ""},"mengsels_label_4": {"nl": "April","en": "April","de": ""},"mengsels_label_5": {"nl": "Mei","en": "May","de": ""},"mengsels_label_6": {"nl": "Juni","en": "June","de": ""},"mengsels_label_7": {"nl": "","en": "","de": ""},"mengsels_label_8": {"nl": "","en": "","de": ""},"mengsels_label_9": {"nl": "","en": "","de": ""},"mengsels_label_10": {"nl": "","en": "","de": ""}}}};
function test(data) {
const sessionStorage = {language: "nl"}
var counter_i = 1; // <-- start at 1
for (var match in data.data.mengsels_data) {
var reg = /(mengsels_img_[0-9]{1,})/g;
if (reg.exec(match)) {
if (data.data.mengsels_data[match]) {
console.log(data.data.mengsels_data['mengsels_label_' + counter_i][sessionStorage.language]);
counter_i++;
}
}
}
}
test(data)
发布于 2018-09-05 23:26:42
我想你把]放错位置了。您能试一下以下代码吗?
console.log(data.data.mengsels_data['mengsels_label_'+counter_i]);
console.log(data.data.mengsels_data['mengsels_label_'+counter_i][sessionStorage.language]);
console.log(sessionStorage.language);如果data.data.mengsels_data['mengsels_label_'+counter_i]等于Object {nl: "April", en: "April", de: ""},那么第二行应该使用data.data.mengsels_data['mengsels_label_'+counter_i][sessionStorage.language]访问nl。
https://stackoverflow.com/questions/52194438
复制相似问题