繁体   English   中英

使用键和值将字符串数组转换为数组 Object

[英]Convert String Array to Array Object with keys and values

我想像这样转换一个字符串数组:

const arr = [
  "name:Adam age:20 height:180cm",
  "name:Sally age:30 height:170cm",
  "name:Mike age:35 height:185cm",
  "name:David age:40 height:190cm"
];

到这个包含 object 的数组,其键和值如下所示:

var obj = [
  {name:'Adam', age:20, height:'180cm'},
  {name:'Sally', age:30, height:'170cm'},
  {name:'Mike', age:35, height:'185cm'},
  {name:'David', age:40, height:'190cm'}
];

谢谢!

 const arr = [ "name:Adam age:20 height:180cm", "name:Sally age:30 height:170cm", "name:Mike age:35 height:185cm", "name:David age:40 height:190cm" ] let result = arr.map(e => Object.fromEntries(e.split(' ').map(n=>n.split(":")))) console.log(result)

您可以使用数组 map 和 split 方法来获得结果。

 const arr = [ 'name:Adam age:20 height:180cm', 'name:Sally age:30 height:170cm', 'name:Mike age:35 height:185cm', 'name:David age:40 height:190cm', ]; const ret = arr.map((x) => { const obj = {}; const a = x.split(' '); a.forEach((y) => { const [key, value] = y.split(':'); obj[key] = key === 'age'? +value: value; }); return obj; }); console.log(ret);

很抱歉命名不好,因为我很匆忙,但这样的事情应该会有所帮助:

 s = "name:Adam age:20 height:180cm"; a = s.split(" "); c = a.map(item => { pair = item.split(":"); key = "\"" + pair[0] + "\""; value = "\"" + pair[1] + "\""; return key + ":" + value; }); s = c.join(","); s = "{" + s + "}"; o = JSON.parse(s); console.log(o)

最后o应该是您想要的 object。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM