首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何使用 Lodash 对对象数组按照某个对象属性值的长度进行排序?

如何使用 Lodash 对对象数组按照某个对象属性值的长度进行排序?

原创
作者头像
小焱
发布2025-08-30 14:31:22
发布2025-08-30 14:31:22
16000
代码可运行
举报
文章被收录于专栏:前端开发前端开发
运行总次数:0
代码可运行

要使用 Lodash 对对象数组按照某个对象属性值的长度进行排序,可以使用 ​​_.sortBy()​​ 方法,并在迭代函数中返回该属性值的长度。以下是具体实现:

代码语言:javascript
代码运行次数:0
运行
复制
const _ = require('lodash');

// 示例对象数组
const items = [
  { id: 1, name: 'apple' },    // name属性长度: 5
  { id: 2, name: 'banana' },   // name属性长度: 6
  { id: 3, name: 'cat' },      // name属性长度: 3
  { id: 4, name: 'dog' },      // name属性长度: 3
  { id: 5, name: 'elephant' }  // name属性长度: 8
];

// 1. 按属性值长度升序排序(短的在前)
const sortedByAsc = _.sortBy(items, item => item.name.length);
console.log('按长度升序排序:');
console.log(sortedByAsc);

// 2. 按属性值长度降序排序(长的在前)
const sortedByDesc = _.sortBy(items, item => -item.name.length);
console.log('\n按长度降序排序:');
console.log(sortedByDesc);
代码说明:
  1. 核心方法:使用 ​​_.sortBy()​​ 进行排序,第一个参数是要排序的数组,第二个参数是迭代函数。
  2. 升序排序:迭代函数 ​​item => item.name.length​​ 返回属性值的长度,​​_.sortBy()​​ 会按长度从小到大排序。
  3. 降序排序:在长度前加负号 ​​item => -item.name.length​​,实现从大到小排序。
输出结果:
代码语言:javascript
代码运行次数:0
运行
复制
按长度升序排序:
[
  { id: 3, name: 'cat' },
  { id: 4, name: 'dog' },
  { id: 1, name: 'apple' },
  { id: 2, name: 'banana' },
  { id: 5, name: 'elephant' }
]

按长度降序排序:
[
  { id: 5, name: 'elephant' },
  { id: 2, name: 'banana' },
  { id: 1, name: 'apple' },
  { id: 3, name: 'cat' },
  { id: 4, name: 'dog' }
]

这种方法适用于任何字符串属性的长度排序,只需将代码中的 ​​name​​ 替换为实际需要排序的属性名即可。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码说明:
  • 输出结果:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档