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

本文介绍了一种使用JavaScript对数组元素按特定属性进行分类的方法。通过一个实用的函数,可以将包含年份和名称的数组,按照年份进行分类,生成一个对象,其中每个年份作为键,对应的值为该年份的所有元素组成的数组。此方法适用于需要对大量数据进行快速分类和处理的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
    }

三 运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值