例如:let a=[{data:'1',age:'22'},,{data:'21',age:'2'},{data:'4',age:'24'},{data:'112',age:'32'}]
{
data:['1','21','4','112'],
age:['22','2','24','32']
}
例如:let a=[{data:'1',age:'22'},,{data:'21',age:'2'},{data:'4',age:'24'},{data:'112',age:'32'}]
{
data:['1','21','4','112'],
age:['22','2','24','32']
}
其实很简单而且也和 ReactJS
没什么关系,我就写一个简单的例子:
const dataSource = [{data:'1',age:'22'},,{data:'21',age:'2'},{data:'4',age:'24'},{data:'112',age:'32'}]
const result = {
data:[],
age:[]
}
const attrList = Object.keys(result)
// 循环dataSource数据插入到结果中
dataSource.forEach(data=>{
attrList.forEach(attrName => result[attrName].push(data[attrName]))
})
// 输出合并的结果
console.log('result----', result)
用 reduce
也可以实现,但是好像并不适合举例。
Object.keys() - JavaScript | MDN
Array.prototype.forEach() - JavaScript | MDN
Array.prototype.push() - JavaScript | MDN
var b = {};
a.forEach((el) => {
for (const key in el) {
b[key] = (b[key] ? b[key] : []).concat(el[key]);
}
});
console.log(b);
5 回答689 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
3 回答359 阅读✓ 已解决
3 回答263 阅读✓ 已解决
6.7k 阅读
7 回答703 阅读
3 回答1.4k 阅读✓ 已解决