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

时间:2018-08-03 07:00:19

标签: javascript object javascript-objects key-value

这似乎是一件基本的事情,但我无法找到我要去哪里。

我要以这种键值格式输出。

[{"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]})
}

但是我收到了意外的令牌错误。请指导我要去哪里了吗?

2 个答案:

答案 0 :(得分:3)

要创建动态属性,您需要使用bracket notation: 请尝试以下操作:

let fullName = "First Last"    
let fullNameArr = fullName.components(separatedBy: " ")
let firstName = fullNameArr[0] //First
let lastName = fullNameArr[1] //Last

答案 1 :(得分:2)

要将动态字符串设置为对象的属性,可以使用方括号表示法(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);

您可以详细了解方括号herehere