在循环内部设置动态键和值



这似乎是一件基本的事情,但我找不到哪里出了问题。

我想要这个键值格式的输出。

[{"10":"bob"},{"20":"Tom"},{"30":"Larry"}]

我在做什么-

var list = [];
var names = ["Bob","Tom","Larry"];
var ages =  ["10", "20", "30"];
for(var i=0; i<names.length; i++){
list.push({ages[i] : names[i]})
}

但我得到了意外的令牌错误。请指引我哪里出错了?

要将动态字符串设置为对象的属性,可以使用方括号表示法(obj[propVariable](。因此,只需将一个空对象存储到变量(var item = {}(中,然后就可以通过item[propVariable]设置其属性。

var list = [];
var names = ["Bob","Tom","Larry"];
var ages =  ["10", "20", "30"];
for(var i=0; i<names.length; i++){
var item = {};
item[ages[i]] = names[i];
list.push(item);
}
console.log(list);

你可以在这里和这里阅读更多关于方括号符号的内容。

要创建动态属性,需要使用括号表示法:尝试以下操作:

var list = [];
var names = ["Bob","Tom","Larry"];
var ages =  ["10", "20", "30"];
for(var i=0; i<names.length; i++){
list.push({[ages[i]] : names[i]})
}
console.log(list);

最新更新