如何根据column1生成dataList const column1 = [ { title: '标题1', dataIndex: 'name1', obj: { a: 1, b: 2 }, }, { title: '标题2', dataIndex: 'name2', obj: { a: 1, b: 2 }, }, { title: '标题3', dataIndex: 'name3', obj: { a: 12, b: 2 }, }, { title: '标题4', dataIndex: 'name4', obj: { a: 11, b: 2 }, }, ]; const dataList=[ { keyName: 'a', name1:1, name2:1, name3:12, name4:11 }, { keyName: 'b', name1:2, name2:2, name3:2, name4:2 } ]
时间: 2023-12-03 09:43:30 浏览: 59
可以使用一个循环来遍历 `column1`,对于每个对象,获取它的 `dataIndex` 值作为 `dataList` 中的键,然后根据这个键从 `obj` 中获取对应的值,将这个值添加到 `dataList` 中的相应位置。
代码如下:
```
const column1 = [
{
title: '标题1',
dataIndex: 'name1',
obj: { a: 1, b: 2 },
},
{
title: '标题2',
dataIndex: 'name2',
obj: { a: 1, b: 2 },
},
{
title: '标题3',
dataIndex: 'name3',
obj: { a: 12, b: 2 },
},
{
title: '标题4',
dataIndex: 'name4',
obj: { a: 11, b: 2 },
},
];
const dataList = [];
const keys = new Set();
column1.forEach((col) => {
keys.add(col.dataIndex);
});
keys.forEach((key) => {
const dataItem = {
keyName: key,
};
column1.forEach((col) => {
if (col.dataIndex === key) {
dataItem[key] = col.obj[key];
}
});
dataList.push(dataItem);
});
console.log(dataList);
```
输出结果:
```
[
{ keyName: 'name1', name1: 1, name2: 1, name3: 12, name4: 11 },
{ keyName: 'name2', name1: 1, name2: 2, name3: 2, name4: 2 },
{ keyName: 'name3', name1: 12, name2: 2, name3: 12, name4: 11 },
{ keyName: 'name4', name1: 11, name2: 2, name3: 2, name4: 11 }
]
```
阅读全文