如何用NodeJS提取对象数组中levelNumber为最大值的所有对象
实现方案
通用代码
// 通用筛选函数:传入对象数组,返回所有levelNumber为最大值的对象组成的数组 function filterMaxLevelObjects(arr) { // 边界处理:非法输入或空数组直接返回 if (!Array.isArray(arr) || arr.length === 0) { return [] } // 计算当前数组中levelNumber的最大值(统一转数字比较,避免字符串排序误差) const maxLevel = Math.max(...arr.map(item => Number(item.levelNumber))) // 过滤匹配最大值的所有对象 return arr.filter(item => Number(item.levelNumber) === maxLevel) }
使用示例
const arr1 = [ { "levelNumber": "2", "name": "abc", }, { "levelNumber": "3", "name": "abc" }, { "levelNumber": "3", "name": "raks", } ] const resultArr = filterMaxLevelObjects(arr1) console.log(resultArr)
输出结果
[ { levelNumber: '3', name: 'abc' }, { levelNumber: '3', name: 'raks' } ]
兼容性说明
- 自动处理levelNumber为字符串类型的场景,转换为数字后比较,避免字符串字典序排序导致
"10" < "2"的错误 - 兼容空数组、非数组输入场景,不会抛出异常
- 无需提前预设最大值,可动态适配任意levelNumber取值的数组
内容的提问来源于stack exchange,提问作者nat
相关产品推荐
相关产品推荐

