1、将a数组中的对象的value赋值到b数组对象的key进行重组处理
const tableHeaderKey = [
{ '规格': 'one', value: '规格' },
{ '材质': 'two', value: '材质'},
{ '颜色': 'three', value: '颜色' },
]
// 价格和库存都是固定的
const tableData = [
{
'规格': '20cm',
'材质': '塑料',
'颜色': '红色',
'价格': '12',
'库存': '100',
}, {
'规格': '20cm',
'材质': '塑料',
'颜色': '红色',
'价格': '12',
'库存': '100',
}
]
const newTableData = tableData.map(item => {
const resObj = {}
Object.keys(item).forEach(item2 => {
const findObj = tableHeaderKey.find(k => k.value === item2)
if (findObj) {
resObj[findObj[item2]] = item[item2]
}
})
return {
...resObj,
inventory: item['库存'],
price: item['价格'],
}
})
console.log(newTableData , '处理之后的');
2、筛选出表格数据中表头对应的类型值,并作出标识字段
const tableHeaderKey = [
{ '规格': 'one', value: '规格' },
{ '材质': 'two', value: '材质'},
{ '颜色': 'three', value: '颜色' },
]
// 价格和库存都是固定的
const tableData = [
{
'规格': '20cm',
'材质': '不锈钢',
'颜色': '白色',
'价格': '12',
'库存': '100',
}, {
'规格': '20cm',
'材质': '塑料',
'颜色': '黑色',
'价格': '12',
'库存': '100',
}
]
const tableHeader = [ '规格', '材质', '颜色', '价格', '库存'];
const isOptions = ['库存', '价格']
// 筛选的表格数据
const subMitTable = tableHeader.map(item => {
if (!isOptions.includes(item)) {
const select = tableData.map(item1 => {
return item1[item]
})
return {title: item, subTitle: select}
}
}).filter(item => !!item)
console.log(subMitTable);
/**
* 打印结果
* [
* { title: '规格', subTitle: ['20cm'] },
* { title: '材质', subTitle: ['塑料', '不锈钢'] },
* { title: '颜色', subTitle: ['黑色', '白色']}
* ]
*/
const subMitTableStr = subMitTable.map(item => {
return `title:${item.title},subTitle:${item.subTitle.join('-')},titleKey:${tableHeaderKey.find(item1 => item1.value === item.title)[item.title]}`
})
console.log(subMitTableStr, 'subMitTableStr');
/**
* 打印结果
* [
* 'title:规格,subTitle:20cm,titleKey:one',
* 'title:材质,subTitle:塑料-不锈钢,titleKey:two',
* 'title:颜色,subTitle:黑色-白色,titleKey:three'
* ]
*/