admin管理员组文章数量:1415100
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.
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.
Share Improve this question asked Sep 15, 2011 at 19:21 JimboJimbo 1372 silver badges11 bronze badges 1- Thank you everyone for your help. I was being dumb :) Thinking too much the PHP way ;) – Jimbo Commented Sep 15, 2011 at 20:34
4 Answers
Reset to default 3optionarray = [];
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
- adding a new object to
optionarray
- setting that object's properties
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
本文标签: Javascript loop and build array but variable indexed undefinedStack Overflow
版权声明:本文标题:Javascript loop and build array but variable indexed undefined - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745230152a2648786.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论