如何将字符串以最少的代码组成数组对象

"1|1|1|1|1,2|2|2|2|2"
[{
    xm: '1',
    gx: '1',
    zzmm: '1',
    rzdw: '1',
    lxdh: '1'
},
{
    xm: '2',
    gx: '2',
    zzmm: '2',
    rzdw: '2',
    lxdh: '2'
}]
阅读 2.5k
3 个回答

利用解构赋值。

image.png

'1|1|1|1|1,2|2|2|2|2'.split(',').map(e => {
    let [xm, gx, zzmm, rzdw, lxdh] = e.split('|');
    return { xm, gx, zzmm, rzdw, lxdh };
});
console.log(demo('1|1|1|1|1,2|2|2|2|2')) // 查看结果

/**
 * @param {String} targetString
 */
function demo (targetString) {
  var child;
  return targetString === '' ? [] : targetString.split(',').map(item => {
    child = item.split('|')
    return {
      xm: child[0],
      gx: child[1],
      zzmm: child[2],
      rzdw: child[3],
      lxdh: child[4]
    }
  })
}

是指字符少么?

"1|1|1|1|1,2|2|2|2|2".split(',').map(e=>e.split('|').reduce((s,c,i)=>(s[['xm','gx','zzmm','rzdw','lxdh'][i]]=c,s),{}))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏