龙空技术网

零基础入门JavaScript:浅谈JavaScript中的数组常用方法01

小玩家00 83

前言:

现时朋友们对“带逗号的字符串转换为数组js”可能比较关怀,我们都想要分析一些“带逗号的字符串转换为数组js”的相关文章。那么小编同时在网络上搜集了一些有关“带逗号的字符串转换为数组js””的相关知识,希望同学们能喜欢,我们快快来学习一下吧!

转换方法:

在JavaScript所有对象都具有toLocaleString()、toString()和valueOf()方法。其中,调用数组的toString()方法返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。而调用valueOf()返回的还是数组。实际上,为了创建这个字符串会调用数组每一项的toString()方法。

另外,toLocaleString()方法经常也返回与toString()和valueOf()方法相同的值,但也不总是如此。当调用数组的toLocaleString()方法时,它也会创建一个数值值的以逗号分隔的字符串。而与前面两个方法唯一的不同之处在于,这一次为了取得每一项的值,调用的是每一项的toLocaleString()方法,而不是toString()方法。

定义了两个对象:person1和person2,分别给这两个对象定义了一个toString()和toLocaleString()方法,两个方法都返回不同的值。接着创建一个数组保存这两个对象,第一行输出的是数组对象,第二行输出的是数组每一项的toString()方法,当调用数组toLocaleString()方法时,输出结果是: Nikolaos,Grigorios,原因在于调用了数组每一项的toLocaleString()方法。

数组继承的toLocaleString()、toString()和valueOf()方法,在默认情况下都会以逗号分隔的字符串返回数组项。而如果使用join()方法,则可以使用不同的分隔符来构建这个字符串。Join()方法只接收一个参数,即用作分隔符的字符串,然后返回包含所有字符串数组项的字符串。

在这里,使用join()方法重现了toString()方法的输出。在传递逗号的情况下,得到了以逗号分隔的数组值。而在最后一行代码中,我们传递了双竖线符号,结果就得到了一个字符串"red|green|blue"。如果不给join()方法传入任何值,或者给它传入undefined,则使用逗号作为分隔符。

栈方法:

JavaScript数组也提供了操作数组行为的方法,数组可以像栈一样。栈是一种后进先出LIFO的数据结构,也就是添加最新的项最早移除。而栈中项的插入和移除只发生在一个位置,就是栈的顶部。push()和pop()是操作栈的行为的方法。

push()方法可以接收任意数量参数,把它们逐个添加到数组的末尾,并返回修改数组的长度。pop()方法则从数组末尾移除到最后一项,减少数组的length值,然后返回移除的项。

以上代码中的数组可以看成是栈。首先,我们使用push()将这两个字符串推入数组的末尾,并将返回的结果保存在变量count中。然后,在推入一个值,而结果仍然保存在count中。因为此时数组中包含3项,所以push()返回3。在调用pop()时,它会返回数组的最后一项,即字符串"black"。

队列方法:

栈数据结构的访问规则是LIFO,而队列的数据结构则是FIFO先进先出。队列在列表的末端添加项,从列表的前端移除项。由于push()是向数组末尾添加项的方法,因此要模拟队列只需一个从数组顶端取值的方法。实现这一操作的数组方法是shift(),它能够移除数组中第一项并返回该项,同时将数组长度减1。结合使用shift()和push()方法,可以像使用队列一样使用数组。

JavaScript还为数组提供了一个unshift()方法。顾名思义unshift()和shift()的用途相反:他能在数组前端添加任意一个项返回新数组的长度。因此,同时使用unshift()和pop()方法,可以相反的方向模拟队列,即数组的前端添加项,从数组末端移除项。

重排序方法:

JavaScript数组中已存在两个直接用来重新排序的方法:reverse()和sort(),reverse()方法会对数组的顺序进行反转。

sort()方法对数组进行升序排列每一项的值,最小的排在最前面,最大的排在最后面。为了实现排序,sort()方法会调用每一个数组项的toString()转型方法,然后返回比较大的字符串,以确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串。

对于sort()方法来说还可以传入一个比较函数,比较函数接收两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数都相等则返回0,如果第一个参数应该位于第二个之后则返回一个正数。

这个与sort()不传参数一样的,还可以使用降序。

由于比较函数通过返回一个小于零、等于零、大于零的值来影响排序结果,当需要处理比较值的时候可以写属于自己的比较函数进行排序。

如有疑问可在下区进行评论!

标签: #带逗号的字符串转换为数组js