昨天自己刚拼的字符串今天自己来解笑死,字符串形成
let data1 = 'title:颜色,subTitle:白色-黑色,titleKey:two|title:材质,subTitle:材质1-材质2,titleKey:one'
let data2 = [
{
create_time: "2019-08-29 15:45:36",
good_id: 31,
id: 20,
inventory: '1',
one: '材质1',
price: '1.00',
three: '',
two: '白色',
}, {
create_time: "2019-08-29 15:45:36",
good_id: 31,
id: 21,
inventory: '2',
one: '材质2',
price: '2.00',
three: '',
two: '黑色',
}
]
data1 = data1.split('|').map(item => {
let newItem = item.split(',') // ['title:颜色', 'subTitle:白色-黑色', 'titleKey:two']
// 找到包含的字段抛出
// 将找的字段进行截选抛出
// 找出符合条件的字段进行字符串截取,获取值
let title = newItem.find(item1 => item1.includes('title')).slice(newItem.find(item1 => item1.includes('title')).indexOf(':') + 1)
let titleKey = newItem.find(item1 => item1.includes('titleKey')).slice(newItem.find(item1 => item1.includes('titleKey')).indexOf(':') + 1)
let subTitle = newItem.find(item1 => item1.includes('subTitle')).slice(newItem.find(item1 => item1.includes('subTitle')).indexOf(':') + 1).split('-')
return {
subTitle,
[titleKey]: title,
value: title,
key: titleKey
}
})
console.log(data1, '实体1');
/**
* 打印结果
* [{颜色: 'two', subTitle: ['白色', '黑色'], value: '颜色', key: 'two'}, {材质: 'one', subTitle: ['材质1', '材质2'], value: '材质', key: 'one'}]
*/
data2 = data2.map(item => {
const newItem = {}
// 这段我自己都不知道 在写什么,只知道data1里面抛出的数据可以作为依据进行重组
Object.keys(item).forEach(key => { // key ['one',two,three]
data1.forEach(item1 => {
if (item1.key === key) newItem[item1[item1.key]] = item[key]
})
})
return {
...newItem,
'价格': item.price,
'库存': item.inventory,
}
})
console.log(data2, '实体2');