从字符串数组创建对象

昏迷的托马斯

我的输入就像

var resources = ["user-john","user-doe", "students-Milan"];

我正在尝试获得如下所示的对象输出,

{
  user: ["john", "doe"],
  students: ["Milan"]
}

我究竟做错了什么

var resources = ["user-john","user-doe", "students-Milan"];

let tempObj = {}
resources.forEach(o => {
 let tempArr = o.split("-");
   if(tempObj[tempArr[0]]){
     tempObj[tempArr[0]] = [...tempArr[1], tempArr[1]]
   }else{
     tempObj[tempArr[0]] = [tempArr[1]]
  }
})

console.log(tempObj)

妮娜·斯科茨(Nina Scholz)

您可以解构拆分后的字符串并构建一个数组作为值。

var resources = ["user-john", "user-doe", "students-Milan"],
    result = resources.reduce(
        (r, s) =>
            ((key, value) => Object.assign(r, { [key]: [].concat(r[key] || [], value) }))
            (...s.split('-')),
        {}
    );
  
console.log(result);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章