新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 程序开发 > 语言 > javascript

JavaScript都得知道这3个数组方法

时间:2019-08-13 13:33:17  来源:  作者:

在该文中,将介绍以下三种方法:

1. join()方法

2. split()方法

3. sort()方法

为什么每个JAVAScript开发人员都要知道这些方法?因为数组是代码中的重要元素,而这些方法可以让代码更优雅和更具代表性。

在没有这些方法的情况下也可以运行项目,但为此必须编写不必要的代码行,而这些代码行原先就没有用处。

那就开始吧,首先了解一下 join() 和 split() 这两种基本的方法,再讨论 sort() 方法。

 

 

1. Join()方法

想象一下这样的场景:用户在数组中输入一些值,然后想把这些值看作消息或字符串。

这就需要用到 join() 方法,它可以把数组中的元素转换成字符串。

toString() 也用于将字符串转换为数组,但是采用 join() 方法,则可以使用separator参数,因此最好使用 join()方法。

join()语法很简单,只需使用:

array.join(separator)

此处separator在传递参数中是可选的,用于定义数组中想要分隔的元素,可以是空格、圆点、逗号和单词等。

如果没有传递参数,则其元素需用逗号分隔。

看一个实例:

const array1=[1,2,3,'My','Name','is','Ney'] const string1=array1.join() const string2=array1.join('') const string3=array1.join(',') const string4=array1.join('and') const string5=array1.join('-') const string6=array1.join('=') const string7=array1.join(':') const string8=array1.join(' ') console.log(array1) // [ 1, 2, 3, 'My', 'Name', 'is', 'Ney' ] console.log(string1) // 1,2,3,My,Name,is,Ney console.log(string2) //123MyNameisNey console.log(string3) // 1,2,3,My,Name,is,Ney console.log(string4) // 1and2and3andMyandNameandisandNey console.log(string5) // 1-2-3-My-Name-is-Ney console.log(string6) // 1=2=3=My=Name=is=Ney console.log(string7) // 1:2:3:My:Name:is:Ney console.log(string8) // 1 2 3 My Name is Ney

上面举了好几个例子,其中要重点讨论的是 string8 和 string2。

在 string2中,引号之间没有任何空格,而在 string8中它则有空格。

可以在引号中放置任意数量的空格,而结果也会随之改变。

 

2. Split()方法

 

因此,我们已经知道数组中的元素可以转换为字符串。

可以把数组中的字符串转换为元素吗?这就是 split() 方法的用处。

split() 方法在如下场景中使用起来十分方便,即必须输入消息并查看其中是否包含特定的单词。使用 includes() 方法可以通过把单词转换成数组,轻松地实现这一目的。下文很快会提及。

在把字符串转换为数组后,仍然可以执行其他的许多功能。从技术角度看, split() 是一种字符串方法,但我会此处有所提及。

首先看一下 split() 的语法:

string.split(separator, limit)

· Separator指定用于拆分字符串的字符。如果留有空格,则整个字符串将转换为数组中的单个元素。

· Limit是一个可选参数,很少使用。它是一个整数,指定拆分的数量。Limit拆分后的项目不会包含在该数组中。

看一些实例:

这里会使用上文提到的 join() 方法例子,并用 split() 方法转换成字符串。

const string1 = `1,2,3,My,Name,is,Ney` const array1 = string1.split(',') const arrayWithLimit = string1.split(',', 4) const arrayWithoutSeperator = string1.split() console.log(array1, arrayWithLimit, arrayWithoutSeperator) //[ '1', '2', '3', 'My', 'Name', 'is', 'Ney' ] [ '1', '2', '3', 'My' ] [ '1,2,3,My,Name,is,Ney' ] const string2 = `123MyNameisNey` const array2 = string2.split('') console.log(array2) //[ '1', ',', '2', ',', '3', ',', 'M', 'y', ',', 'N', 'a', 'm', 'e', ',', 'i', 's', ',', 'N', 'e', 'y' ] const string3 = `1,2,3,My,Name,is,Ney` const array3 = string3.split(',') console.log(array3) //[ '1', '2', '3', 'My', 'Name', 'is', 'Ney' ] const string4 = `1and2and3andMyandNameandisandNey` const array4 = string4.split('and') console.log(array4) //[ '1', '2', '3', 'My', 'Name', 'is', 'Ney' ] const string5 = `1-2-3-My-Name-is-Ney` const array5 = string5.split('-') console.log(array5) //[ '1', '2', '3', 'My', 'Name', 'is', 'Ney' ] const string6 = `1=2=3=My=Name=is=Ney` const array6 = string.split('=') console.log(array6) //[ '1', '2', '3', 'My', 'Name', 'is', 'Ney' ] const string7 = `1:2:3:My:Name:is:Ney` const array7 = string7.split(':') console.log(array7) //[ '1', '2', '3', 'My', 'Name', 'is', 'Ney' ] const string8 = `1 2 3 My Name is Ney` const array8 = string8.split(' ') console.log(array8) //[ '1', '2', '3', 'My', 'Name', 'is', 'Ney' ]

我们逐一来看以下的例子:

· array1, string1:只要有逗号就可分成一个数组。

· arrayWithLimit: 已经指定了一处限制,因此生成的数组只有四个起始元素,这即是限制。

· arrayWithoutSeperator: 前文已经讨论过,如果没有给出分隔符,整个字符串将转换为数组的单个元素。

· array2:由于参数中的引号为空, split() 可分隔每个字符,包括空格符、逗号和任何其他可能存在的字符。

· array4:可以看到字符串中缺少所有“and”,并且遗漏的字符串成为了数组的单个元素。如果参数中只有一个字母,则结果将得到诸多元素和一个缺少指定元素的字符串。可以尝试一下。因此,使用单词或字符串作为分隔符时,要十分小心。

· array3, array5, array, array7, array8:拆分了上述所有内容后,可以生成相同的字符串,这是正确的操作,因为我们只对相应字符撤消 了join() 。

练习:使用join(), split(), and reverse()创建一个函数

现在可以练习使用 join(), split(), 和 reverse() 创建函数,检查用户输入字符串是否为回文结构。

如果还不熟悉 reverse() 方法,就记住它只是反转数组的元素。

例如:

const num = [1,2,3,4,5,6] const reverseNum = num.reverse() console.log(reverseNum) //[ 6, 5, 4, 3, 2, 1 ]

以上就是 split() 方法。尝试练习一下,可把自己的GitHub存储库的代码共享到评论区。

 

3. Sort()方法

正如名字所述, sort() 方法是对数组中的元素进行排序。

默认情况下, sort() 函数将值排序为字符串。

let greekLetter = ['beta','alpha','delta','gamma']; console.log(greekLetter.sort()) // [ 'alpha', 'beta', 'delta', 'gamma' ]

对数字进行排序时,会出现问题。

因为,如果要对数字进行排序,比如说100和25,100将出现在25之前,因为100中的1出现在25中的2之前。

let num1 = [25, 100, 23] console.log(num1.sort()) //[ 100, 23, 25 ] let num2 = ['25', '100', '23'] console.log(num2.sort()) //[ '100', '23', '25' ]

可以使用比较函数来解决这一问题,这种方法将函数传递给语法: function(a, b){return a — b}

let num = [25, 100, 23] console.log(num.sort((a, b) => { return a - b })) //[ 23, 25, 100 ]

(我们使用了箭头函数,而不是上文语法中给出的传统函数.)

首先要理解这个比较函数。它应返回负值、零值还是正值,具体取决于参数——a更大还是b更大。

当 sort() 函数比较两个值时,它会将值发送至比较函数,并根据返回值(负值、零值或正值)对值进行排序。

· 如果结果为负,则a排在b之前。

· 如果结果为正,则b排在a之前。

· 如果结果为0,则两个值的排序顺序不会发生改变。

· 比较函数比较数组中的所有值,一次比较两个值(a,b)。

· 比较25和100时, sort() 方法调用比较函数(25,100)。

· 函数计算25-100(a,b),且在结果为负(-75)时,sort函数将25排为低于100的值。

 

 



Tags:JavaScript 数组   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
在该文中,将介绍以下三种方法:1. join()方法2. split()方法3. sort()方法为什么每个JavaScript开发人员都要知道这些方法?因为数组是代码中的重要元素,而这些方法可以让代码更优...【详细内容】
2019-08-13   JavaScript 数组  点击:(0)  评论:(0)  加入收藏
推荐资讯
相关文章
栏目更新
栏目热门