当前位置: 首页 > news >正文

[面试] 手写题-对象数组根据某个字段进行分组

题目1

// 输入
let arr = [{name: '张三', age: 18},{name: '李四', age: 20},{name: '王五', age: 18},{name: '赵六', age: 20},{name: '孙七', age: 21},
];// 输出
{18: [{name: '张三', age: 18}, {name: '王五', age: 18}],20: [{name: '李四', age: 20}, {name: '赵六', age: 20}],21: [{name: '孙七', age: 21}],
}

代码

function groupBy(arr) {let obj = {};arr.forEach(item => {if (!obj[item.age]) {obj[item.age] = [];}obj[item.age].push(item);});return obj;
}

改成指定字段

function groupBy(arr,key) {let obj = {};arr.forEach(item => {if (!obj[item[key]]) {obj[item[key]] = [];}obj[item[key]].push(item);});return obj;
}groupBy(arr,'age')

题目2

// 输入
let arr = [{name: '张三', age: 18},{name: '李四', age: 20},{name: '王五', age: 18},{name: '赵六', age: 20},{name: '孙七', age: 21},
];// 输出
[{key: "18",data: [{name: '张三', age: 18}, {name: '王五', age: 18}]},{key: "20",data: [{name: '李四', age: 20}, {name: '赵六', age: 20}]},{key: "21",data: [{name: '孙七', age: 21}]}
]

代码

function groupBy(arr) {let obj = {};arr.forEach(item => {if (!obj[item.age]) {obj[item.age] = [];}obj[item.age].push(item);});let resArr = []Object.keys(obj).forEach(key=> {resArr.push({age: key,data: obj[key],})})return resArr
}

参考:

【JS】js数组分组,javascript实现数组的按属性分组

js数组操作——对象数组根据某个相同的字段分组


文章转载自:
http://antibody.zzyjnl.cn
http://actionist.zzyjnl.cn
http://biopack.zzyjnl.cn
http://anti.zzyjnl.cn
http://addible.zzyjnl.cn
http://carryout.zzyjnl.cn
http://bajri.zzyjnl.cn
http://carburize.zzyjnl.cn
http://atonalism.zzyjnl.cn
http://bedpan.zzyjnl.cn
http://anticathode.zzyjnl.cn
http://ata.zzyjnl.cn
http://balancer.zzyjnl.cn
http://angor.zzyjnl.cn
http://challah.zzyjnl.cn
http://barranquilla.zzyjnl.cn
http://calefacient.zzyjnl.cn
http://abstrusity.zzyjnl.cn
http://aby.zzyjnl.cn
http://barycentre.zzyjnl.cn
http://cancha.zzyjnl.cn
http://autolyze.zzyjnl.cn
http://binominal.zzyjnl.cn
http://aluminosilicate.zzyjnl.cn
http://atherosclerotic.zzyjnl.cn
http://burrito.zzyjnl.cn
http://caballero.zzyjnl.cn
http://brushy.zzyjnl.cn
http://blabbermouth.zzyjnl.cn
http://andalusia.zzyjnl.cn
http://www.dtcms.com/a/280822.html

相关文章:

  • mysql官网的版本历史版本下载
  • 令牌获取与认证机制详解
  • 关键点检测数据格式转换(.JSON转TXT)
  • 【超分论文精读】——LightBSR(ICCV2025)
  • 梳理Bean的创建流程
  • mongoDB的CRUD
  • Visual Studio 现已支持新的、更简洁的解决方案文件(slnx)格式
  • 云服务器如何管理数据库(MySQL/MongoDB)?
  • 基于STM32G431无刷电机驱动FOC软硬件学习
  • iOS高级开发工程师面试——常见第三方框架架构设计
  • C++学习笔记五
  • Gemma-3n-E4B-it本地部署教程:谷歌开源轻量级多模态大模型,碾压 17B 级同类模型!
  • SHAP 值的数值尺度
  • Conda 核心命令快速查阅表
  • 技术演进中的开发沉思-35 MFC系列:消息映射与命令
  • Keepalived双机热备
  • 网络安全职业指南:探索网络安全领域的各种角色
  • 003大模型基础知识
  • React 实现老虎机滚动动画效果实例
  • AutojsPro 9.3.11 简单hook
  • Pixel Reasoner:通过好奇心驱动的强化学习激励像素空间推理
  • 简单2步配置CadenceSkill开发编辑器,支持关键字高亮
  • [AI-video] Web UI | Streamlit(py to web) | 应用配置config.toml
  • (李宏毅)deep learning(五)--learning rate
  • 从底层技术到产业落地:优秘企业智脑的 AI 革命路径解析
  • NAT的核心原理以及配置
  • CCF-GESP 等级考试 2025年6月认证Python四级真题解析
  • RDMA over RoCE V2设计2:系统框架设计考虑
  • Datawhale AI夏令营 机器学习2.1
  • 详解低速容错CAN(附与高速CAN对比表)