dont laugh think im having a long day work blonde moment as im a bit out of practice with JS. Any helped appreciated for what I think is a stupidly simple problem.
optionarray = [];
for(i=0;i<response.length;i++) {
optionarray[i]['content'] = response[i]['name'];
optionarray[i]['value'] = response[i]['id'];
}
I keep getting optionarray[i] is undefined when trying to add it to the array and build it. I know im doing something ridiculously stupid I just can't remember what :)
Many thanks for any help in advance.
optionarray = [];
for(i=0;i<response.length;i++) {
optionarray[i] = {
'content' :response[i]['name'],
'value': response[i]['id']
};
}
You are trying to access properties of optionarray[i]
, which does not exist.
What you should be doing in each iteration is
optionarray
You can do both at once like this:
optionarray = [];
for(i=0;i<response.length;i++) {
optionarray.push({
content: response[i]['name'],
value: response[i]['id']
});
}
I think you just need to initialize the optionarray[i] object within your for loop:
var optionarray = []; //NOTE: I added var here so because otherwise it's an implicit global
for(i=0;i<response.length;i++) {
optionarray[i] = {};
optionarray[i]['content'] = response[i]['name'];
optionarray[i]['value'] = response[i]['id'];
// BETTER: optionarray.push({content: response[i]['name'], value: response[i]['id']});
}
if I'm not mistaken.
Try this one
optionarray[i] = [];
optionarray[i]['content'] = response[i]['name'];
optionarray[i]['value'] = response[i]['id'];
You need to define optionarray[i] as array first
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.