我需要使用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);
});
但它不是那样创建的对象,如果是它将创建的字符串值。
答案 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}