繁体   English   中英

JS - 使用循环填充关联数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM