【前端问题精选】求问关于j对象数组合并的问题

有两个数组

const arr = [{

title: '标题',

config: [{

time: '10:00',

name: '1-1'

},{

time: '10: 01',

name: '1-2'

},{

time: '10:02',

name: '1-3'

}]

},{

title: '标题1',

config: [{

time: '10: 00',

name: '2-1'

},{

time: '10: 03',

name: '2-2'

},{

time: '10: 04',

name: '2-3'

}]

}]

合并后的结果

const result = [{

time: 10:00,

name1: '1-1'

name2: '2-1'

},{

time: 10: 01,

name1: '1-2',

name2: ''

},{

time: 10: 02,

name1: '1-3,

name2: ''

},{

time: 10: 03,

name1: ',

name2: '2-2'

},{

time: 10: 04,

name1: '',

name2: '2-3'

}]

如果两个数组里的time相同的话,就合成一条数据
不同的话哪个里就是哪个里的
然后name1,name2是根据arr的长度来的

半天没弄出来,求教

大家都疑惑有这样的数据结构,真的有,快哭了
Snipaste_2020-03-19_16-13-46.png

回答:

const arr = [{

title: '标题',

config: [{

time: '10:00',

name: '1-1'

},{

time: '10:01',

name: '1-2'

},{

time: '10:02',

name: '1-3'

}]

},{

title: '标题1',

config: [{

time: '10:00',

name: '2-1'

},{

time: '10:03',

name: '2-2'

},{

time: '10:04',

name: '2-3'

}]

}]

数据time的内容有问题,请用我上面的数据,然后使用 lodash 的方法来处理

    _.chain(arr)

.map(item => item.config)

.flatten()

.groupBy(item => item.time)

.map((items, time) => {

let result = { time };

items.forEach((item, idx) => {

result["name" + idx] = item.name;

});

return result;

})

.value();

image.png

以上是 【前端问题精选】求问关于j对象数组合并的问题 的全部内容, 来源链接: utcz.com/a/132428.html

回到顶部