首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >这种方法适用于任何字符串属性的长度排序,只需将代码中的 name 替换为实际需要排序的属性名即可。

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

原创
作者头像
小焱写作
发布2025-08-30 10:48:53
发布2025-08-30 10:48:53
11000
代码可运行
举报
运行总次数:0
代码可运行

除了 Lodash 的 ​​_.sortBy()​​ 方法,还可以使用以下几种方式实现对对象数组按属性值长度排序:

1. Lodash 的 ​​_.orderBy()​​ 方法

​_.orderBy()​​ 比 ​​_.sortBy()​​ 更灵活,支持指定排序方向(升序/降序):

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

const items = [
  { id: 1, name: 'apple' },
  { id: 2, name: 'banana' },
  { id: 3, name: 'cat' }
];

// 按 name 长度升序(短->长)
const sortedAsc = _.orderBy(items, [item => item.name.length], ['asc']);

// 按 name 长度降序(长->短)
const sortedDesc = _.orderBy(items, [item => item.name.length], ['desc']);
2. 原生 JavaScript 的 ​​Array.sort()​​ 方法

不依赖 Lodash 时,可直接使用数组原生的 ​​sort()​​ 方法:

代码语言:javascript
代码运行次数:0
运行
复制
const items = [
  { id: 1, name: 'apple' },
  { id: 2, name: 'banana' },
  { id: 3, name: 'cat' }
];

// 升序排序(短->长)
const sortedAsc = [...items].sort((a, b) => {
  return a.name.length - b.name.length;
});

// 降序排序(长->短)
const sortedDesc = [...items].sort((a, b) => {
  return b.name.length - a.name.length;
});
3. Lodash 的 ​​_.sortWith()​​ 方法(自定义比较器)

对于更复杂的排序逻辑,可以使用 ​​_.sortWith()​​ 配合自定义比较器函数:

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

const items = [
  { id: 1, name: 'apple' },
  { id: 2, name: 'banana' },
  { id: 3, name: 'cat' }
];

// 按 name 长度升序
const sortedAsc = _.sortWith(items, [(a, b) => a.name.length - b.name.length]);

// 按 name 长度降序
const sortedDesc = _.sortWith(items, [(a, b) => b.name.length - a.name.length]);
各方法对比

方法

特点

适用场景

​​_.sortBy()​​

简洁,默认升序

简单排序需求

​​_.orderBy()​​

支持多字段排序和方向指定

需明确排序方向时

​​Array.sort()​​

原生方法,无需依赖

不想引入 Lodash 时

​​_.sortWith()​​

支持复杂比较逻辑

多条件组合排序

实际开发中可根据项目是否已引入 Lodash 以及排序复杂度选择合适的方法。如果已使用 Lodash,​​_.orderBy()​​ 是兼顾灵活性和简洁性的优选;若追求轻量无依赖,则原生 ​​Array.sort()​​ 更合适。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Lodash 的 ​​_.orderBy()​​ 方法
  • 2. 原生 JavaScript 的 ​​Array.sort()​​ 方法
  • 3. Lodash 的 ​​_.sortWith()​​ 方法(自定义比较器)
  • 各方法对比
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档