Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JavaScript 将对象数组按字母顺序排序

JavaScript 将对象数组按字母顺序排序

原创
作者头像
唐志远
发布于 2023-07-26 03:43:17
发布于 2023-07-26 03:43:17
1.1K0
举报
文章被收录于专栏:FE32 CodeFE32 Code

原文链接:JavaScript 将对象数组按字母顺序排序

这里给出三种解决方案:

1.if条件语句 + sort()

2.localeCompare() + sort()

3.Collator() + sort()

sort 用法

语法

代码语言:JavaScript
AI代码解释
复制
array.sort(compareFunction)

参数值

参数

描述

compareFunction

可选。定义替代排序顺序的函数。该函数应返回负值、零值或正值,具体取决于参数,例如: function(a, b){ return a - b } sort() 方法比较两个值时,将值发送给比较函数,根据返的(负、零、正)值对值进行排序。 <b>举例:</b> 比较 40 和 100 时,sort() 方法调用比较函数(40,100)。 该函数计算 40-100,并返回 -60(负值)。 sort 函数会将 40 排序为小于 100 的值。

sort() 方法会改变原始数组。

兼容性

Chrome、IE、Edge、Firefox、Safari、Opera 等 都支持 sort() 方法。

举例

排序数组
代码语言:JavaScript
AI代码解释
复制
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var tzy = fruits.sort();
console.log(tzy);

输出如下:

按升序排序
代码语言:JavaScript
AI代码解释
复制
var points = [66, 100, 3, 10, 250, 88, 77];
var tzy = points.sort((a, b)=> a - b);
console.log(tzy);

输出如下:

按降序排序
代码语言:JavaScript
AI代码解释
复制
var points = [66, 100, 3, 10, 250, 88, 77];
var tzy = points.sort((a, b)=> b - a);
console.log(tzy);

输出如下:

if 条件语句 + sort()

代码语言:JavaScript
AI代码解释
复制
var list = [
    { FirsName: "Aaron", LastName: "Baker" },
    { FirstName: "Bert", LastName: "Green" },
    { FirstName: "Larry", LastName: "White" },
    { FirstName: "Victor", LastName: "Fox" },
]
function sortArray(x, y) {
    if (x.LastName < y.LastName) { return -1; }
    if (x.LastName > y.LastName) { return 1; }
    return 0;
}
var tzy = list.sort(sortArray);
console.log(tzy);

输出如下:

localeCompare() + sort()

代码语言:JavaScript
AI代码解释
复制
var list = [
    { FirsName: "Aaron", LastName: "Baker" },
    { FirstName: "Bert", LastName: "Green" },
    { FirstName: "Larry", LastName: "White" },
    { FirstName: "Victor", LastName: "Fox" },
]
function sortArray(x, y) {
    return x.LastName.localeCompare(y.LastName)
}
var tzy = list.sort(sortArray);
console.log(tzy);

输出如下:

如果对象目标 key 中存在标点符号,在这种情况下,我们可以使用localeCompare()函数并将其设置为在比较期间忽略标点符号。

代码语言:JavaScript
AI代码解释
复制
var list = [
    { FirsName: "Aaron", LastName: ",Baker" },
    { FirstName: "Bert", LastName: "Green" },
    { FirstName: "Larry", LastName: ",White" },
    { FirstName: "Victor", LastName: "Fox" },
]
function SortArray(x, y){
    return x.LastName.localeCompare(y.LastName, 'fr', {ignorePunctuation: true});
}
var tzy = list.sort(sortArray);
console.log(tzy);

输出如下:

你还可以通过将 localeCompare() 函数的灵敏度设置为 base 来忽略字符串中存在的特殊字符,如下所示。

代码语言:JavaScript
AI代码解释
复制
x.LastName.localeCompare(y.LastName, 'en', { sensitivity: 'base' });

点击 传送门 查看有关 localeCompare() 函数的更多详细信息。

Collator() + sort()

代码语言:JavaScript
AI代码解释
复制
var list = [
    { FirsName: "Aaron", LastName: "Baker" },
    { FirstName: "Bert", LastName: "Green" },
    { FirstName: "Larry", LastName: "White" },
    { FirstName: "Victor", LastName: "Fox" },
]
function SortArray(x, y){
    return collator.compare(x.LastName, y.LastName);
}
var tzy = list.sort(sortArray);
console.log(tzy);

输出如下:

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
13个有趣的JavaScript原生数组函数
来源 | http://www.fly63.com/article/detial/9098?type=2 在JavaScript中,创建数组可以使用Array构造函数,或者使用数组直接量[],后者是首
前端达人
2021/05/11
6070
Javascript 常见的操作数组的方法
解释: arr 表示原数组; prev 表示上一次调用回调时的返回值,或者初始值 init; cur 表示当前正在处理的数组元素; index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1; init 表示初始值
何处锦绣不灰堆
2020/05/28
5350
JavaScript 数组总结 原
JavaScript没有明确的数组数据类型,但是外面可以通过使用内置Array对象和它的方法对数组进行操作,Array对象有很多操作数组的方法,比如 合并,反转 ,排序,数组对象有一个决定数组长度和使用正则表达式操作其他属性的属性,你可以分配length属性,写一个小于数组元素变量的值会缩短数组本身,写0会彻底清空数组
tianyawhl
2019/04/04
5020
JavaScript的对象介绍和常用内置对象介绍
//从下标为6的位置开始截取,截取到下标为8的位置,但是不包括下标为8的字符[6,8)
小小鱼儿小小林
2020/06/23
1.6K0
提高 javascript 代码效率的技巧
✨ 变量声明 多个变量的声明,可以简写 // 非效率写法 let x; let y; let z = 520; // 效率写法 let x, y, z = 520; ✨ 三元运算符 在条件判断时,可
江户川码农
2022/06/25
9213
提高 javascript 代码效率的技巧
ES13 中的 11 个惊人的 JavaScript 新特性
与许多其他编程语言一样,JavaScript 也在不断发展。每年,该语言都会通过新功能变得更强大,让开发人员编写更具表现力和简洁的代码。 让我们探索 ECMAScript 2022 (ES13) 中添加的最新功能,并查看它们的使用示例以更好地理解它们。 ◆ 1. 类字段声明 在 ES13 之前,类字段只能在构造函数中声明。与许多其他语言不同,我们不能在类的最外层范围内声明或定义它们。 class Car { constructor() { this.color = 'blue'; this.
IT大咖说
2022/08/26
7900
ES13 中的 11 个惊人的 JavaScript 新特性
10个JavaScript难点
为了保证可读性,本文采用意译而非直译,并且对示例代码进行了大量修改。另外,本文版权归原作者所有,翻译仅用于学习。
Fundebug
2018/09/20
7960
sort排序「建议收藏」
 一般这样直接排出来的东西都不是我和我的小伙伴想要的。数组对象直接调用sort()方法,sort()方法把它每一个数组元素都转换为字符串,然后再按照字符编码进行排列。
全栈程序员站长
2022/09/06
6510
sort排序「建议收藏」
JavaScript 常用功能总结
小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式。 目录: 众所周知,JavaScript是动态的面向对象的编程语言,能够实现以下效果: 1. 丰富Web 网页功能 2. 丰富Web界面 3. 实现本地或远程存储。 4. 实现分布式网络应用的前端组件,并在后台进行数据存储管理。 5. 使用JavaScript可以实现完整的分布式Web 应用。 JavaScript 中的数据类型 JavaScri
葡萄城控件
2018/01/10
2.7K0
JavaScript 常用功能总结
程序员提高写代码速度_学完javascript学什么
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170853.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
5040
JavaScript 学习-5.对象(object)的创建
前言 对象(object)是 JavaScript 最重要的数据类型,也是JavaScript的核心内容。JavaScript 中一切皆对象,比如String、 Array、Date等对象。 在 JavaScript 中,对象是非常重要的,当你理解了对象,就可以了解 JavaScript 。 对象的概念 对象是无序的数据集合,由键值对组成,对象键值对的写法类似于: Python 中的字典 PHP 中的关联数组 C 语言中的哈希表 Java 中的哈希映射 Ruby 和 Perl 中的哈希表 真实生活中,一辆汽
上海-悠悠
2022/05/16
4460
JavaScript 学习-5.对象(object)的创建
ECMAScript13 中11个令人惊叹的 JavaScript 新特性
与许多其他编程语言一样,JavaScript 也在不断发展。每年,该语言都会通过新功能变得更加强大,使开发人员能够编写更具表现力和简洁的代码。 小编今天就为大家介绍ES13中添加的最新功能,并查看其用法示例以更好地理解它们。
葡萄城控件
2023/10/16
3020
举例说明了十大ES6功能
虽然ES6规范不是最近才发布,但我认为很多开发人员仍然不太熟悉。 主要原因是在规范发布之后,Web浏览器的支持可能很差。 目前,规范发布已经超过2年了,现在很多浏览器对ES6支持良好。 即使您(或您的客户)不使用最新版本的Web浏览器,也可以使用转换器(如Babel),在应用程序的构建过程中将ES6转换为ES5。 这意味着要向前迈出一步,学习ES6。
frontoldman
2019/09/02
7440
JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
Array.sort() 是 JavaScript 中用于数组排序的内置方法。表面上看,它只是一个对数组元素进行升序或降序排列的工具,但深入理解其用法后会发现,它不仅支持灵活的排序逻辑,还能结合其他数组方法,实现复杂的数据操作和优化性能。本文将从基本语法入手,逐步讲解 Array.sort() 的复杂用法,并通过丰富的实战案例,展示其在开发中的强大应用。
watermelo37
2025/01/22
8680
JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】
数组基本操作可以归纳为增、删、改、查,需要留意的是哪些方法会对原数组产生影响,哪些方法不会
HelloWorldZ
2024/03/20
3730
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】
JavaScript中的this(你不知道的JavaScript)
JavaScript中的this,刚接触JavaScript时大家都在大肆渲染说其多么多么的灵巧重要,然而自己并不关心;随着自己对JavaScript一步步深入了解,突然恍然大悟,原来它真的很重要!所以,自己花费了大约2周的时间去查贴、翻阅之前读的书籍,将this的全貌展示如下。
奋飛
2019/08/15
4960
JavaScript语言规范
JavaScript 是一种客户端脚本语言,这里列出了编写 JavaScript 时需要遵守的规则。
用户1065635
2019/03/21
5700
Javascript-命令速查-CheatSheet
Get occurrences count of substring in a string
szhshp
2022/09/21
1.5K0
送你43道JavaScript面试题
这两天的GitHub Trending repositories被一个名叫 javascript-questions的项目霸榜了,项目中记录了一些JavaScript题目。
ConardLi
2019/06/19
1.7K0
送你43道JavaScript面试题
Airbnb JavaScript Style Guide
const foo = 1; let bar = foo; bar = 9; console.log(foo, bar); // => 1, 9
天天_哥
2018/09/29
1.6K0
相关推荐
13个有趣的JavaScript原生数组函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档