我如何在Javascript中将数组转换为对象

时间:2015-06-05 13:36:27

标签: javascript arrays types type-conversion

我正在尝试使用Javascript转换数组

A=['"age":"20"','"name":"John"','"email":"john@email.com"'];

对象

O={"age":"20","name":"John","email":"john@email.com"}.

我怎么做到这一点。 感谢

3 个答案:

答案 0 :(得分:1)

由于引用了密钥,您可以利用JSON.parse。您可以将数组设为字符串,用大括号括起来并解析它。

var A = ['"age":"20"', '"name":"John"', '"email":"john@email.com"'];

var temp = "{" + A.toString() + "}";
var theObj = JSON.parse(temp);
console.log(theObj);

答案 1 :(得分:0)

应该是直接的,只需在冒号上进行迭代和拆分

var A = ['"age":"20"','"name":"John"','"email":"john@email.com"'];

var O = {};

A.forEach(function(item) {
    var parts = item.split(':').map(function(x) { return x.trim().replace(/\"/g,'') });
    
    O[parts[0]] = parts[1];
});

document.body.innerHTML = '<pre>' + JSON.stringify(O, null, 4) + '</pre>';

答案 2 :(得分:0)

尝试一下:

const A = ['"age":"20"', '"name":"John"', '"email":"john@email.com"'];
const result = A.reduce((res, i) => {
    let s = i.split(':');
    return {...res, [s[0]]: s[1].trim().replace(/\"/g, '')};
}, {});
console.log(result);