数组对象的筛选去重排序
原数据格式:

目标数据格式

没错,就是需要转换为el-table中的筛选数据的格式。
1.我们只需要name的值,因此先进行对象截取
对象截取,这里使用Object.assign()
console.log 打印 dataName

2.得到了目标数据的格式,这一步对dataName进行去重

打印 dataName 看看
已经没有重复的对象了
3.最后,给 dataName 排序,使用sort()
根据设备号前面的数字进行排序

最后,来打印dataName看一看

完成了!!
最后附上所有代码
const data = [{
date: '2022-05-06',
name: '1号设备',
unit: 'A'
},
{
date: '2022-05-07',
name: '1号设备',
unit: 'A'
},
{
date: '2022-05-08',
name: '6号设备',
unit: 'A'
},
{
date: '2022-05-08',
name: '6号设备',
unit: 'A'
},
{
date: '2022-05-09',
name: '4号设备',
unit: 'A'
},
{
date: '2022-05-10',
name: '5号设备',
unit: 'A'
},
{
date: '2022-05-11',
name: '2号设备',
unit: 'A'
},
{
date: '2022-05-12',
name: '3号设备',
unit: 'A'
}
]
// 获取name属性,并创建为对应格式
let dataName = data.map(item => {
return Object.assign({}, {
text: item.name,
value: item.name
})
})
console.log('筛选:', dataName);
// 去重
let obj = {}
dataName = dataName.reduce((a, b) => {
obj[b.text] ? "" : (obj[b.text] = true && a.push(b));
return a
}, [])
console.log('去重:', dataName);
// 排序
dataName = dataName.sort((a, b) => {
return a.text.slice(0, 1) - b.text.slice(0, 1)
})
console.log('排序:', dataName)
版权声明:本文为weixin_64012291原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。