1. JS 你不知道的Array
1.检测数组
为什么要提这个呢?因为这个ES5的写法只支持IE9+ ff4+ Safari5+Chrome,所以在涉及要浏览器兼容的时候就要注意了。
2.数组的栈方法
3.数组的队列方法
数组的unshift方法是为数组添加第一项并返回该项
数组的shift方法是为数组删除第一项并返回该项
4.数组的操作方法
如果slice()方法的参数中有一个负数的情况下,就用数组的长度加上该数来确定相对的位置,如下
数组的最强大的方法splice(),注意和上面的slice区别开;根据传入的参数的不同,它有很多种用法:
删除:可以删除任意数量的项,需要传入2个参数,要删除的第一项的位置和要删除的项数
如 splice(0,2)会删除数组中的前两项
插入:可以向制定的位置插入任意数量的项,需要提供3个参数:起始位置,0(固定,表示是要删除的项,要插入的项),如果要传入多项,可以继续往后面传入更多的参数(项),
如splice(1,0,”red”,”blue”) 从第一个位置开始插入
替换:可以向制定位置插入任意数量的项,且同事删除任意数量的项,只需要指定3个参数(起始位置,要删除的项,和要删除的项数)
如splice(2,1,’red’,’green’) 从第二个位置开始删除1项,然后在2的位置上插入”red”和”green”注意:splice()方法插入的时候是修改原数组,并不会返回新数组(它是没有返回值的)
12345 var arr = ["aaa",'bbb','ccc'];var arr_re = arr.splice(2,0,"ddd","eee");console.log(arr); //[ 'aaa', 'bbb', 'ddd', 'eee', 'ccc' ]console.log(arr_re); // [];
5.数组的迭代方法
ES5中数组有5个迭代方法
every(): 如果函数对每一项都返回true,则返回true
some(); 如果函数的任意一项返回true,则返回true
filter(); 如果符合逻辑处理中的项返回true,那么这些项将会组成新的数组返回
map(); 返回每次调用完成之后重新组成数组
forEach(); 对数组中的每一项运行给定的函数,该方法没有返回值
|
|
以上方法都是ES5的所以可能也会涉及到浏览器兼容问题哦~
6.数组的缩小方法
ES5新增了2个缩小数组的方法:reduce()和reduceRight(),这两个方法都会迭代数组的所有项,然后构建一个最终的返回值,reduce()会从数组的第一项开始迭代,而reduceRight()会从最后一项开始迭代并且向前遍历.