javascript - 将数组转换为 JS 对象
问题描述
我在数组中有键值对,格式为 -
["model:B250W,C300W4,E300W4,GLA250W4", "class:E", "exteriorColor:BLK", "interiorColor:BGE", "price:30000,115000", "year:2018", "bodyStyle:SDN,CPE,SUV"].
如何将其转换为 JS 对象?预期的输出应该是:
{
"model":"B250W,C300W4,E300W4,GLA250W4",
"class":"E",
"exteriorColor":"BLK",
"interiorColor":"BGE",
"price":"30000,115000",
"year":"2018",
"bodyStyle":"SDN,CPE,SUV"
}
我试过-
y=["model:B250W,C300W4,E300W4,GLA250W4", "class:E", "exteriorColor:BLK", "interiorColor:BGE", "price:30000,115000", "year:2018", "bodyStyle:SDN,CPE,SUV"];
x=Object();
x.y[0].split('&')[0]=y[0].split('&')[1];
但我遇到了一个错误。这是将键和值分配给对象的其他方式吗?
解决方案
您可以迭代字符串,拆分值并将第一项作为键并连接所有其他值(如果拆分)以获得新对象。
最后创建一个对象。
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);
推荐阅读
- python-3.x - 验证 name1 和 name 2 以连接,prov
- javascript - 自己的拆分方法 JavaScript
- api - 为什么我需要在 mapbox map.on('load') 中调用两次 XMLHttpRequest 来获取路由
- c - 使用堆栈的河内塔问题 - 它不是解决河内问题,而是移动磁盘
- node.js - 如何在后台启动节点打字稿进程(Express API)?
- url - 如何下载 Blob:url?(没有 *.m3u8)
- javascript - 将 Loop Marquee 样式设置为 Archives 外观
- mysql - 如果行在 2 小时内存在,如何排除行?
- cgal - 用 CGAL 计算两个自相交多边形的相交部分
- python - 创建存储在 for 循环中的 X 个列表,然后保存在 X 个字典中