js根据数组键名对数组进行分类

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
    }

三 运行结果

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值