如何使用带有整数键的javascript动态创建数字对象属性名称?

时间:2017-11-21 18:33:23

标签: javascript jquery

我需要使用javascript new Object()生成一个带有数字对象属性的对象。

例如,我想通过以下格式动态创建对象 {1:" 1",2:" 2",3:" 5"}

我在下面试过

var json_str=new Object();  
$([1,2,3]).each(function(i,t){
        var str="'json_str."+t+"="+t+"'";
        eval(str);
});

但它不是那样创建的对象,如果是它将创建的字符串值。

3 个答案:

答案 0 :(得分:2)

您可以使用Object.assign并映射对象。

var array = [1, 2, 3],
    object = Object.assign(...array.map(k => ({ [k]: k.toString() })));

console.log(object);

答案 1 :(得分:2)

简单的JS:

let array = [1, 2, 3];
let object = {};

for (let num of array) {
  object[num] = String(num);
}

console.log(object);
console.log(Object.keys(object)); // your keys will automatically become strings too

您应该尽可能避免使用eval()来防止意外注入漏洞。

答案 2 :(得分:0)

我想你想把它变成一个数组,然后就可以了 将对象推到它上面:

var json_str=new Array();  
$([1,2,3]).each(function(i,t){
   json_str.push( { [t] : t });
});

json_str: Array(3)
0:{1: 1}
1:{2: 2}
2:{3: 3}