首页 > 编程知识 正文

JS数组方法,JAVAscript数组

时间:2023-05-05 13:05:25 阅读:21703 作者:1494

一.如何在JavaScript中创建数组?使用Array构造函数

var color=new Array (;

注意:括号中的参数可以是参数。 数字表示数组的长度,多个数字表示数组中应包含的值,而非数字表示数组中应包含的值。

2 .使用序列文字

var color=[];

2 .数组长度

3 .数组的方法包括数组原型方法和从object对象继承的方法。 这里只介绍数组的原型方法。 数组原型方法主要有以下几种: 连接(

推()和pop ) )。

shift (和unshift ) )

sort () )

reverse () )

concat () )

slice () )

splice () )

索引关闭(和lastIndexOf ) ) ) ) ) ES5新功能) ) )。

(forEach () ) ) ) ES5新功能) ) ) ) ) ) ) ) ) ) )。

映射() ) ) ES5新功能) ) ) ) ) ) ) ) ) )。

filter () ) ) ES5新建) ) ) ) ) ) )。

every () ) ) ) ES5新建) ) ) ) ) )。

some () ) ) ES5新功能) )

reduce (和reduceRight ) ) ) ) ) ) ES5新功能) ) ) ) ) )。

1.join()

join(separator ) :将数组中的元素分组为字符串,使用separator作为分隔符,如果省略,则缺省情况下使用逗号作为分隔符。 这种方法只接收一个名为分隔符的参数。

join ) )方法可以实现重复字符串。 只要传递重复字符串,就可以返回重复后的字符串。 函数如下:

2.push()和pop()

push ) ) :可以接收任意数量的参数,在数组末尾添加一个参数,并返回已修改数组的长度。

pop () :删除数组末尾的最后一个项,减少数组的长度值,然后返回删除的项。

注意: pop ()没有参数。 如果立即有参数,则删除最后一项。

3、shift() 和 unshift()

删除shift ()原始数组中的第一个项目,并返回已删除元素的值。 如果数组为空,则返回undefined。

unshift:在原始数组的开头添加参数,并返回数组的长度。

该组中的方法正好与上面的推(和pop )方法相对应。 一个是操作数组的开头,另一个是操作数组的末尾。

4.sort () )

sort () :按升序排列数组条目——时,最小值排在第一,最大值排在最后。

排序时,sort ) )方法为每个数组条目调用toString ) )转换方法,并比较得到的字符串以确定排序方式。 即使数组中的每个项目都是数字(sort ) )方法也会比较字符串,因此:

为了解决上述问题,sort (方法可以接受比较函数作为参数,并指定哪个值在哪个值之前。 比较函数接收两个参数,如果第一个参数必须在第二个前面,则返回负数;如果两个参数相等,则返回0;如果第一个参数必须在第二个之后,则返回正数。 下面是一个简单的比较函数。

5.reverse()

reverse () :反转数组条目的顺序。

6、concat()

concat () :将参数添加到原始数组。 此方法首先创建当前数组的副本,将收到的参数添加到此副本的末尾,然后返回最近构建的数组。 如果没有向concat () )方法传递参数,则只需复制当前数组并返回副本。

上述测试结果表明,如果传递的不是数组,则将参数直接添加到数组之后;如果传递的是数组,则将数组中的单个项添加到数组中。 但是,如果二维排列进来怎么办?

在上面的代码中,arrCopy2数组中的第五个项目是包含两个项目的数组。 这意味着concat方法只能将传递的数组中的每个项添加到数组中。 如果传递的数组中的某些项目是数组,则该数组项目也会作为一个项目添加到arrCopy2中

7、slice()

slice () :返回由原始数组中指定的开始下标和结束下标之间的项目组成的新数组。 slice ) )方法可以接受一个或两个返回项目开始和结束位置的参数。 如果只有一个参数,则slice ()方法返回从参数指定的位置到当前数组末尾的所有项。 如果有两个参数,则方法返回开始位置和结束位置之间的项目——,但不包括结束位置的项目。

arrCopy只设置了一个参数。 也就是说,由于起始下标为1,所以返回的数组从下标1 (包括下标1 )到数组末尾。

arrCopy2包含两个参数,开始下标(

括1)开始到终止下标(不包括4)的子数组。 
arrCopy3设置了两个参数,终止下标为负数,当出现负数时,将负数加上数组长度的值(6)来替换该位置的数,因此就是从1开始到4(不包括)的子数组。 
arrCopy4中两个参数都是负数,所以都加上数组长度6转换成正数,因此相当于slice(2,5)。

8、splice()

splice():很强大的数组方法,它有很多种用法,可以实现删除、插入和替换。

删除:可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数。例如, splice(0,2)会删除数组中的前两项。

插入:可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项。例如,splice(2,0,4,6)会从当前数组的位置 2 开始插入4和6。
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。例如,splice (2,1,4,6)会删除当前数组位置 2 的项,然后再从位置 2 开始插入4和6。

splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项,如果没有删除任何项,则返回一个空数组。

9、indexOf()和 lastIndexOf()

indexOf():接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的开头(位置 0)开始向后查找。 
lastIndexOf:接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。

这两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符。

三.数组的遍历

四。数组的迭代方法

ECMAScript为数组定义了五个迭代方法,每个方法都接收两个参数:要在每一项上面运行的函数和运行该函数的作用域——影响this的值。传入这些方法的函数会接收三个参数(数组项的值,索引,数组本身)

(1)forEach()  对数组的每一项运行给定函数,该方法没有返回值

(2)some(): 对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true

(3) every()  对数组中的每一项运行都给定函数,如果该函数对每一项都返回true,则返回true

(4)filter() :对数组的每一项运行给定函数,返回该函数会返回true的项组成的数组。

 

对新数组变化不会影响原数组的改变

(5)map() :对数组的每一项运行给定函数,返回每次函数调用结果所组成的数组

之后修改生成的数组不会影响原数组

 

 

五. 迭代方法

ES5新增了两个归并数组的方法:reduce()和 reduceRight(),这两个方法都会迭代数组所有的项,然后构建一个最终的值返回。

这两个方法都接收两个参数:一个在每一项上面调用的函数和(可选)作为归并基础的初始值。

给reduce和reduceRight这两个方法的函数都接收四个参数值:前一个值,当前值,索引,数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数是数组的第二项。

第一次执行回调函数的时候,pre为1,cur为2,第二次,pre为3(1加2的结果),cur为3(数组的第三项),依次类推,直到将数组的每一项都访问一遍,最后返回结果。

reduceRight()与reduce()使用一样,只不过是从后往前遍历。

六.数组变异和非变异:

变异:push()和pop(),shift() 和 unshift(),sort(),splice()

非变异:join(),concat(),slice(),indexOf()和 lastIndexOf() (ES5新增),forEach() (ES5新增),some() (ES5新增),fliter() (ES5新增),map() (ES5新增),every() (ES5新增),reduce()和 reduceRight() (ES5新增)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。