JavaScript将对象数组按字母顺序排序的方法详解

 更新时间:2023年07月10日 09:27:16   作者:唐志远  
这篇文章主要介绍了JavaScript如何将对象数组按字母顺序排序,本文介绍了三种解决方案,if条件语句 + sort(),localeCompare() + sort(),Collator() + sort(),有感兴趣的同学可以跟着小编一起来看看

里给出三种解决方案:

1.if条件语句 + sort() 2.localeCompare() + sort() 3.Collator() + sort()

sort 用法

语法

array.sort(compareFunction)

参数值

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

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

兼容性

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

举例

排序数组

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var tzy = fruits.sort();
console.log(tzy);

输出如下:

按升序排序

var points = [66, 100, 3, 10, 250, 88, 77];
var tzy = points.sort((a, b)=> a - b);
console.log(tzy);

输出如下:

按降序排序

var points = [66, 100, 3, 10, 250, 88, 77];
var tzy = points.sort((a, b)=> b - a);
console.log(tzy);

输出如下:

if 条件语句 + sort()

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()

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()函数并将其设置为在比较期间忽略标点符号。

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 来忽略字符串中存在的特殊字符,如下所示。

x.LastName.localeCompare(y.LastName, 'en', { sensitivity: 'base' });

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

Collator() + sort()

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);

输出如下:

到此这篇关于JavaScript将对象数组按字母顺序排序的方法详解的文章就介绍到这了,更多相关JavaScript 对象数组排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • uniapp表单验证方法详解

    uniapp表单验证方法详解

    From表单组件具有数据收集、提交数据的功能,某种程度上说它就是一个容器,下面这篇文章主要给大家介绍了关于uniapp表单验证的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • js中的闭包实例展示

    js中的闭包实例展示

    闭包是js中的一大特色,也是一大难点。下面这篇文章主要给大家介绍了关于js中闭包的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-11-11
  • Javascript节点关系实例分析

    Javascript节点关系实例分析

    这篇文章主要介绍了Javascript节点关系,实例分析了javascript操作父子节点及兄弟节点的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 解析ES6中的解构赋值(数组,对象,嵌套,默认值)

    解析ES6中的解构赋值(数组,对象,嵌套,默认值)

    解构赋值是一种特殊的语法,它使我们可以将数组或对象“拆包”至一系列变量中,因为有时这样更方便,接下来通过本文给大家介绍ES6中的解构赋值(数组,对象,嵌套,默认值),需要的朋友可以参考下
    2022-11-11
  • js图片卷帘门导航菜单特效代码分享

    js图片卷帘门导航菜单特效代码分享

    这篇文章主要介绍了js图片卷帘门导航菜单特效,一款很新颖的图片导航菜单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-09-09
  • 浅析BootStrap Treeview的简单使用

    浅析BootStrap Treeview的简单使用

    bootstrap-treeview.js1是一款强大的树菜单插件,本文给大家介绍bootstrap treeview的简单使用,涉及到使用要求及数据格式的介绍,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友参考下
    2016-10-10
  • JS实现短信验证码一键登录功能

    JS实现短信验证码一键登录功能

    短信验证码一键登录是一种方便快捷的登录方式,本文介绍了其原理并给出了一个简单的JavaScript示例,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • 深入理解JavaScript系列(2) 揭秘命名函数表达式

    深入理解JavaScript系列(2) 揭秘命名函数表达式

    网上还没用发现有人对命名函数表达式进去重复深入的讨论,正因为如此,网上出现了各种各样的误解,本文将从原理和实践两个方面来探讨JavaScript关于命名函数表达式的优缺点
    2012-01-01
  • TypeScript高级用法的知识点汇总

    TypeScript高级用法的知识点汇总

    这篇文章主要给大家介绍了关于TypeScript高级用法的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用TypeScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • Javascript实现div的toggle效果实例分析

    Javascript实现div的toggle效果实例分析

    这篇文章主要介绍了Javascript实现div的toggle效果的方法,实例分析了采用纯javascript实现toggle效果的相关技巧,需要的朋友可以参考下
    2015-06-06

最新评论