[英]JS - Fill an associative array using a loop
我正在尝试使用循环填充JS数组但是不工作这是我的代码:
words = ["one", "two", "three", "four"];
words_formated = [];
for( var i=0 ; i<words.length ; i++ ){
words_formated.push({words[i]: "<i>"+ words[i] +"</i>"});
}
尝试使用数组键直接分配对象属性名称时,我也遇到了错误,这有效:
words = ["one", "two", "three", "four"];
words_formated = [];
for( var i=0; i<words.length; i++ ){
var item = words[i]
words_formated.push({item: "<i>"+ words[i] +"</i>"});
}
jsfiddle 在这里
当你将一个物体推入数组时, words_formated.push({words[i]: "<i>"+ words[i] +"</i>"});
,关键名词words[i]
不正确
如果你写的话,问题就会解决
words_formated.push({words: "<i>"+ words[i] +"</i>"});
如果你正确地将word
数组定义为words = ["one", "two", "three", "four"];
则是最佳实践words = ["one", "two", "three", "four"];
尝试这个 :
var words = ['one', 'two', 'three', 'four'],
words_formated = [],
item;
for (var i = 0; i < words.length; i++) {
item = {};
item[words[i]] = '<i>' + words[i] + '</i>';
words_formated.push(item);
}
根据您自己的代码,结果将是:
[
{ one : "<i>one</i>" },
{ two : "<i>two</i>" },
{ three : "<i>three</i>" },
{ four : "<i>four</i>" }
]
数组:
var a = (1, 2, 3); // a sequence of numbers (returns the last one)
a // 3
var a = [1, 2, 3]; // an array
a // [1, 2, 3]
失败:
var k = ['name'];
var o = { k[0]: 'value' }; // SyntaxError: Unexpected token [
通行证:
var k = ['name'];
var o = {};
o[k[0]] = 'value';
o // Object {name: "value"}
words = ("one", "two", "three", "four"); //wrong
而是在数组块中使用
words = ["one", "two", "three", "four"];
像数组一样使用:
words = ["one", "two", "three", "four"];
var words_formated=[];
for( var i=0 ; i<words.length ; i++ ){
words_formated[words[i]]= "<i>"+ words[i] +"</i>";
}
console.log(words_formated);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.