举例:现有一组数据如下,需要获取数组中每组元素下的insureYears的交集并以中文形式呈现。
Y---代表年 A--代表岁
1 遍历获取每组中的insureYears字段
let insureYearArrT = res.list.map(item => {
return item.insureYears
})
console.log('insureYearArrT',insureYearArrT)
//['10Y,20Y,30Y,60A', '20Y', '10Y,20Y', '10Y,20Y,30Y,60A']
2 将上面数组中的字符串分开
let insureYearArr = insureYearArrT.join().split(',')
console.log('insureYearArr',insureYearArr)
// ['10Y', '20Y', '30Y', '60A', '20Y', '10Y', '20Y', '10Y', '20Y', '30Y', '60A']
3 取出数组中的交集
var insureYearArrList = []
for (var i = 0; i < insureYearArr.length; i++) {
if (
insureYearArrList.indexOf(insureYearArr[i]) == -1 &&
insureYearArr.indexOf(insureYearArr[i]) !==
insureYearArr.lastIndexOf(insureYearArr[i])
) {
insureYearArrList.push(insureYearArr[i])
}
}
console.log('insureYearArrList',insureYearArrList)
// ['10Y', '20Y', '30Y', '60A']
4 字段映射为中文
let arrInsure = []
insureYearArrList.forEach(item => {
let arr = item[item.length - 1] == 'Y' ? item.split('Y') : item.split('A')
item[item.length - 1] == 'Y' ? arrInsure.push(arr[0] + '年') :
arrInsure.push(arr[0] + '岁')
arr = []
})
console.log('arrInsure',arrInsure)
// ['10年', '20年', '30年', '60岁']