Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 拆分对象并将其分组_Javascript_Lodash - Fatal编程技术网

Javascript 拆分对象并将其分组

Javascript 拆分对象并将其分组,javascript,lodash,Javascript,Lodash,我需要一个合适的方法来分割这个对象并将其分组。 先谢谢你 let data = [{ name: 'DAVID/JOHN', amount: '1231.21/131.93', identity: '1880/1332', address: 'first/second' }] 预期结果 let result = [ { name: 'DAVID', amount: '1231.21', identity: '1

我需要一个合适的方法来分割这个对象并将其分组。 先谢谢你

let data = [{
    name: 'DAVID/JOHN',
    amount: '1231.21/131.93',
    identity: '1880/1332',
    address: 'first/second'
  }]
预期结果

  let result = [
    {
      name: 'DAVID',
      amount: '1231.21',
      identity: '1880',
      address: 'first'
    },
    {
      name: 'JOHN',
      amount: '131.93',
      identity: '1332',
      address: 'second'
    }
  ]

您可以使用[
Array.flatMap()][1]
或lodash迭代数组,获取每个对象的值,并使用和将它们拆分为多个对象:

let数据=[{
姓名:'大卫/约翰',
金额:“1231.21/131.93”,
身份:“1880/1332”,
地址:“第一/第二”
}]
const result=data.flatMap(o=>
对象。条目(o)
.减少((r[k,v])=>{
v、 拆分('/')。forEach((p,i)=>{
如果(!r[i])r[i]={}
r[i][k]=p;
})
返回r
}, [])
)

这里使用map方法记录(结果)

let数据=[{
姓名:'大卫/约翰',
金额:“1231.21/131.93”,
身份:“1880/1332”,
地址:“第一/第二”
}]
让结果=data.flatMap(e=>{
返回e.name.split('/').map((v,i)=>{
返回{
姓名:v,,
金额:即金额拆分(“/”)[i],
identity:e.identity.split('/')[i],
地址:e.address.split('/')[i]
}
});
});

控制台日志(结果)你试过什么?您可以使用flatMap(
data.flatMap
)而不是先使用map然后使用flat。@Oridori是的,我在您的答案中看到了。我将使用它:)。它将在这里编辑我的答案。谢谢