JavaScript基础知识之数组的方法

1.检测数组

1)用instanceof这个二元操作符

2)用Array.isArray()方法,这个是ES5新创建的方法,所以可能存在浏览器兼容性问题

3)  自定义一个isArray方法,传入数组arr,函数中返回 return arr.constructor.toString().indexOf('Array')>-1

2.转换方法

有toString()   valueOf()    toLocaleString()方法,以逗号分隔;如果想要以其他符号分隔用join()方法,该方法不传参的情况下默认以逗号分隔。

3.栈方法和队列方法

push和unshift : push是从数组末端添加,unshift是从数组前端添加,返回的是新数组长度;

pop和shift:pop是从数组末端删除,shift是从数组前端删除,返回的是被删除的元素;

因为数组本质上也是对象,所以可以用delete操作符来删除数组项,删除后该数组的长度没有变化,只是再次访问该数组项时为underfined.

以上都会改变原数组

4.重排序方法

1)reverse()反转数组顺序

2)sort()方法,默认按照升序,调用数组元素的toString方法,对各项按照字符串进行排序;传入比较函数,

function(a,b){

return a-b;

}对元素进行升序排序

重排序两种方法都会改变原数组

5.对数组项进行处理的方法,有concat()  slice()  splice()

1)concat()连接,把括号中的参数如一个或多个数组,单个元素添加到原数组的末端

2)slice()剪切数组元素,接收1到2个参数,第一个是起始位置,第二个是结束位置(但不包括),若只有一个参数,则一直剪切到结尾。

若参数是负数,则要将该负数与数组元素长度值相加,若起始值大于结尾值,则返回空数组。

以上两种方法都是返回新数组,并不会改变原数组。

3)splice()方法可以删除,替换,添加数组项,接收三个参数,第一个是起始位置,第二个是删除项个数,第三个是要插入的元素,可以传多个。

当只传两个参数就实现删除,传三个实现替换,传三个中间的参数为0就是添加。splice()方法会返回删除项组成的数组,当没有删除项时返回空数组,该方法会改变原数组。这个方法要注意如果要插入元素,则在起始位置前插入。

6.查找特定元素的位置的方法

两种方法都可以接收两个参数,第一个是要查找的元素,第二个是起始位置(可选,起始位置是负数的话就从结尾开始的给定位置开始),只是indexOf()是从前端开始,lastIndexOf是从末端开始。没有找到就返回-1

1)indexOf()

2)lastIndexOf()

7.五种迭代方法+两种

五种方法都可以传入两个参数,第一个是要在每一项上运行的函数,第二个是运行函数的作用域对象(可选),这个函数有三个参数,第一个是每一项值item,第二个是项所在位置index,第三个是数组对象本身array

1)every() : 对每一项都返回true,才返回true.

2)some() : 只要有一项返回true,就返回true.

3)filter() : 返回结果为true的数组元素组成的数组.

4)map() : 返回结果组成的数组

5)forEach() : 没有返回值

再补充两种迭代方法

6)find() : 返回通过函数的第一个数组项的值

7)findIndex() : 返回通过函数的第一个数组项的索引值

以上五种方法都不会改变原数组

8.缩小方法

1)reduce()

2)reduceRight()

这两个方法也会遍历数组的每一项,然后返回结果值,都可以接收两个参数,第一个是要遍历的方法,(这个方法有四个参数,前一个值prev,当前值cur,项的索引index和数组对象本身array),第二个参数是作为缩小基础的初始值(可选)。每一次执行的结果会作为prev传入下一次。reduce()是从前端往后,reduceRight()是从后端往前。

这两个方法也不会改变原数组

posted @ 2020-08-10 09:16  麦嗬忒先生  阅读(30)  评论(0)    收藏  举报