js根据数组键名对数组进行分类
一 数据
let arr = [{
year:"2018",name:"111"
},{
year:"2018",name:"222"
},{
year:"2019",name:"111"
},{
year:"2020",name:"333"
},{
year:"2020",name:"444"
}]
二 js 代码
function classification (ArrayList, name) {
if (!(ArrayList instanceof Array)) {
return '请传入正确格式的数组'
}
if (!name) {
return '请传入对象属性'
}
let nameArr = []
for (let i in ArrayList) {
if (nameArr.indexOf(ArrayList[i][`${name}`]) === -1) {
nameArr.push(ArrayList[i][`${name}`])
}
}
let tempObj = {}
for (let k in nameArr) {
for (let j in ArrayList) {
if (ArrayList[j][`${name}`] == nameArr[k]) {
tempObj[nameArr[k]] = tempObj[nameArr[k]] || []
tempObj[nameArr[k]].push(ArrayList[j])
}
}
}
return tempObj
}
三 运行结果