Reputation: 603
I'm trying to get a value from my object using variable and another object. The first variable worked very well, but is get stuck at the second one and tried a lot of things without success.
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);
The first line returns;
Object {nl: "April", en: "April", de: ""}
Second line returns;
undefined
Third line returns
nl
I need to get 'April'
Added later
In the example below data
is retrieved with ajax call, from original it's json but ajax transfer it inside a object.
Only in this example i placed 'var data' manually with the full ajax response, in my example it's not transferred into object.
My goal is to loop trough each image and take the image and the label in the right language what is part of the image.
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++;
}
}
}
}
});
Upvotes: 0
Views: 45
Reputation: 92440
nl
is a property of data.data.mengsels_data['mengsels_label_'+counter_i]
and sessionStorage.language
=== nl
. So you should be able to use:
data.data.mengsels_data['mengsels_label_'+counter_i][sessionStorage.language]
Edit based on new code:
The code you have is starting the counter at 0
but the data starts at mengsels_label_1
, which means on the first iteration you are looking for mengsels_label_0
, which doesn't exist. Try starting at 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)
Upvotes: 2
Reputation: 293
I think you misplaced a ]
. Can you try the following code:
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);
If data.data.mengsels_data['mengsels_label_'+counter_i]
is equal to Object {nl: "April", en: "April", de: ""}
, then your second line should access the nl
by using data.data.mengsels_data['mengsels_label_'+counter_i][sessionStorage.language]
.
Upvotes: 0