当前位置: 首页 > 知识库问答 >
问题:

javascript - JavaScript 箭头函数在数组排序中的应用?

韩麒
2023-12-27

JavaScript箭头函数

let x = [1,2,3,4,5,6,7,8];
x.sort( (a,b) => b-a );
console.log(x);
实现逆序的原理是什么?

求大佬解惑

共有2个答案

松建本
2023-12-27

这两篇文章有原理以及源码解读很清楚:

https://juejin.cn/post/7130939610493878308
https://juejin.cn/post/6844904118289432590#heading-0
罗梓
2023-12-27

首先,我们需要了解JavaScript中的箭头函数以及Array.prototype.sort()方法。

JavaScript的箭头函数是一种简洁的函数语法,它没有自己的thisargumentssupernew.target。箭头函数中的this值继承自包围它的非箭头函数。

Array.prototype.sort()是一个数组方法,它对数组的元素进行排序并返回数组。默认情况下,此方法将数组元素转换为字符串,然后根据它们的字符序进行排序。

在你给出的代码中:

let x = [1,2,3,4,5,6,7,8];x.sort( (a,b) => b-a );console.log(x);

x.sort((a, b) => b - a) 是将数组x进行升序排序,然后返回排序后的数组。(a, b) => b - a是一个箭头函数,它接收两个参数ab,并返回它们的差值。在排序函数中,如果返回的差值小于0,那么a会被排在b前面,实现升序;如果差值大于0,则a被排在b`后面,实现降序。

所以,对于你给出的数组 [1,2,3,4,5,6,7,8],排序后的结果应该是 [8,7,6,5,4,3,2,1]

这是因为箭头函数 (a, b) => b - a 的工作原理是:首先比较数组的第一个元素和第二个元素,如果第一个比第二个大,那么它们就交换位置。然后比较第二个和第三个元素,如果第二个比第三个大,那么它们也交换位置,以此类推。这样,最大的元素就会被放在数组的最后面。然后这个过程对剩下的元素重复进行,直到整个数组都排好序。

 类似资料:
  • 本文向大家介绍JavaScript中的常规函数​​与箭头函数?,包括了JavaScript中的常规函数​​与箭头函数?的使用技巧和注意事项,需要的朋友参考一下 常规函数与箭头函数 一个箭头函数来简洁编写代码。常规 函数和箭头 函数的工作方式相似,但是它们之间存在一些差异。让我们简要地讨论一下这些差异。 箭头函数的语法 正则函数的语法 “ this”关键字的用法 它不能在箭头功能中使用“ this”

  • 问题内容: 新的es6箭头功能说在某些情况下是隐式的: 该表达式也是该函数的隐式返回值。 在什么情况下需要使用es6箭头功能? 问题答案: 隐式返回,但仅当没有块时才返回。 * 当单线扩展到多行并且程序员忘记添加时,这将导致错误。 * 隐式返回在语法上是模棱两可的。返回对象…对吗?错误。它返回。这些括号是一个明确的块。是一个标签。 我会在此添加一个块的定义: 块语句(或其他语言的复合语句)用于将零

  • 本文向大家介绍JavaScript中的函数申明、函数表达式、箭头函数,包括了JavaScript中的函数申明、函数表达式、箭头函数的使用技巧和注意事项,需要的朋友参考一下 JavaScript中的函数可以通过几种方式创建,如下。 函数声明和表达式之间的差别是 JavaScript 解释器中存在一种变量声明被提升的机制,也就是说函数声明会被提升到作用域的最前面,即使写代码的时候是写在最后面,也还是会

  • 问题内容: 我对AngularJs和数据表很陌生。我需要使用ng- repeat填充表行中的数据。我能够填充行并首次启用排序。当我单击箭头以升序或降序排序时,行数据消失了。 这是我的表数据 这是我的排序javascript代码 我得到tr的行数是1 我在页面底部包含了js文件 当我加载数据时,用ng-repeat进行精细加载。但是,当我单击标题以升序或降序排序时,行被擦除了。 请告诉我我做错了什么

  • 本文向大家介绍JavaScript ES6箭头函数使用指南,包括了JavaScript ES6箭头函数使用指南的使用技巧和注意事项,需要的朋友参考一下 胖箭头函数(Fat arrow functions),又称箭头函数,是一个来自ECMAScript 2015(又称ES6)的全新特性。有传闻说,箭头函数的语法=>,是受到了CoffeeScript 的影响,并且它与CoffeeScript中的=>语

  • 本文向大家介绍详解Javascript ES6中的箭头函数(Arrow Functions),包括了详解Javascript ES6中的箭头函数(Arrow Functions)的使用技巧和注意事项,需要的朋友参考一下 ES6可以使用“箭头”(=>)定义函数,注意是函数,不要使用这种方式定义类(构造器)。 一、语法 1. 具有一个参数的简单函数 2. 没有参数的需要用在箭头前加上小括号 3. 多个