将数组转换为JS对象

时间:2018-10-19 18:35:11

标签: javascript

我在数组中有键值对,格式为-

GET https://www.google.com/m8/feeds/contacts/default/full/<id>

如何将其转换为JS对象?预期输出应为:

["model:B250W,C300W4,E300W4,GLA250W4", "class:E", "exteriorColor:BLK", "interiorColor:BGE", "price:30000,115000", "year:2018", "bodyStyle:SDN,CPE,SUV"]. 

我尝试过-

{
    "model":"B250W,C300W4,E300W4,GLA250W4",
    "class":"E",
    "exteriorColor":"BLK",
    "interiorColor":"BGE", 
    "price":"30000,115000", 
    "year":"2018", 
    "bodyStyle":"SDN,CPE,SUV"
}

但是我遇到一个错误。这是将键和值分配给对象的另一种方法吗?

2 个答案:

答案 0 :(得分:0)

您可以迭代字符串,拆分值,然后将第一项作为键,并为一个新对象加入所有其他值(如果已拆分)。

最后创建一个对象。

var data = ["model:B250W,C300W4,E300W4,GLA250W4", "class:E", "exteriorColor:BLK", "interiorColor:BGE", "price:30000,115000", "year:2018", "bodyStyle:SDN,CPE,SUV"],
    object = Object.assign(
        ...data.map(s => (([k, ...v]) => ({ [k]: v.join(':') }))(s.split(':')))
    );
    
console.log(object);

答案 1 :(得分:0)

@Nina的回答很好。如果您想尝试,reduce只是另一个解决方案

87