整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Javascript数组系列四之数组的转换与排序So

Javascript数组系列四之数组的转换与排序Sort方法

avascirpt 数组中的方法,数组的转换是我们在项目的开发过程中,数据类型之间的转换有着非常重要的作用,而数组转换成其他数据类型是我们常见的一种。toString该方法是对数组转换成字符串,数组的每一个元素都会调用 「toString」方法 ,返回一个新字符串。该字符串是以数组中的每一个元素的字符串形式拼接而成,且元素之间用逗号分隔。

join该方法也是将一个数组转换成字符串,返回一个新的字符串。方法会将数组的每一个元素转换成字符串,然后再用给定的字符去拼接成一个新的字符串返回给我们。该方法接受一个参数:就是我们给定的分隔符。array.join(separator)的语法看上去比较简单,但是有几点我们需要注意

  • 参数是可选的,如果没有参数默认为逗号(,)
  • 参数可以为空字符串(""),这时会返回一个没有任何字符分隔的字符串
  • 如果数组的元素中有 undefined 或者null,则会被转化为空字符串("")
  • 参数可以为空格,元素会以空格分隔

数组的排序用到的场景有很多,比如表格的升序与降序,数据从大到小排列或者按照某些规则去排列等等都会用到排序,如何有效到使用数据到排序方法,首先你要对这些方法有一定的了解才能使用比较恰当的方法。reverse从名称我们应该就能猜出该方法的作用,该方法就是将数组中的元素颠倒顺序。

sort该方法对数组的元素进行排序,默认情况下按照升序排列。先看看下面两个例子

你会发现排序规则并不是我们想想的那样,究竟是怎么一回事情呢?其实在「sort」方法执行的时候,数组的每个元素会先执行一次 toString() 方法,然后在根据字符串的 Unicode 编码进行排序。

想使用JavaScript,实现冒泡排序的动态效果,如下图:

冒泡排序

要实现该功能,首先准备一个 html 模板,用来生成不同长度的进度条,来直观的展示不同大小的数字:

html 模板

然后准备好几个函数:

随机生成数字的函数:

生成 length 个大小在 m 和 n 之间的数字

初始化长度条的函数

先获取模板: let template=document.getElementById('template').innerHTML;

初始化长度条函数

对数字进行排序的函数:

这里准备了两个排序函数,一个是冒泡排序,一个是选择排序:

冒泡排序

选择排序

以将乱序的数组进行排序,使其升序或降序排列。

以下是使用 JavaScript 编写的升序排列和降序排列的示例代码。

升序排列:

let unsortedArray=[4, 6, 1, 9, 2, 5, 8, 3];  
let sortedArray=[];

for (let i=0; i < unsortedArray.length; i++) {  
  sortedArray.push(unsortedArray[i]);  
}

console.log(sortedArray); // [1, 2, 3, 4, 5, 6, 7, 8, 9]  

降序排列:

let unsortedArray=[9, 8, 7, 6, 5, 4, 3, 2, 1];  
let sortedArray=[];

for (let i=0; i < unsortedArray.length; i++) {  
  sortedArray.push(unsortedArray[i]);  
}

console.log(sortedArray); // [1, 2, 3, 4, 5, 6, 7, 8, 9]  

在 JavaScript 中,可以使用 Array.sort() 方法对数组进行排序。该方法接受两个参数:要排序的数组和比较函数。比较函数用于比较两个元素的大小关系,如果比较对象是 true,则返回 0,否则返回 -1。

以下是升序排列的示例代码:

let unsortedArray=[4, 6, 1, 9, 2, 5, 8, 3];  
let sortedArray=[];

for (let i=0; i < unsortedArray.length; i++) {  
  sortedArray.push(unsortedArray[i]);  
}

sortedArray.sort((a, b)=> a - b);

console.log(sortedArray); // [1, 2, 3, 4, 5, 6, 7, 8, 9]  

在上面的代码中,比较函数使用 a - b 表示两个元素之间的大小关系。sort() 方法按升序对数组进行排序,将其转换为 [1, 2, 3, 4, 5, 6, 7, 8, 9]。