1.数组的基本操作:unshift(头增)、shift(头删)、push(尾增)、pop(尾删)
(1)unshift :向数组的头部增加1个或者多个成员,返回值是数组的长度,会改变原数组。
var arr = [4,5,6];
var result = arr.unshift(4,5,55);
console.log(result);
(2)shift:不需要参数,默认从数组的头部移除一项,返回值是删除的项,会改变原数组。
var arr = [4,5,6];
var result = arr.shift();
console.log(result);
(3)push:向数组的尾部增加1个或者多个成员,返回值是数组的长度,会改变原数组。
var arr = [4,5,6];
var result = arr.push(4,5,55);
console.log(result);
(4)pop:不需要参数,默认从数组的尾部移除一项,返回值是删除的项,会改变原数组。
var arr = [4,5,6];
var result = arr.pop();
console.log(result);
2.数组的其他方法:
(1)concat:合并 不会改变原数组 var arr = [1,2,3];
var arr1 = arr.concat(1,2,3,[4,5,6]);
console.log(arr);
console.log(arr1);
(2)slice:截取 不会改变原数组
eg.①
var arr = [1,2,3,4,5,6,7];
var arr1 = arr.slice(3,6);
其中:(3,6)表示左闭右开,包含了下标为3 的成员,不包含下标为6的成员。输出 结果为:[4,5,6]。
②
var arr = [1,2,3,4,5,6,7];
var arr1 = arr.slice(-3,6);
console.log(arr1);
其中:-3 表示从后往前数,6表示从前往后数,输出结果为:[5,6]
③
var arr = [1,2,3,4,5,6,7];
var arr1 = arr.slice(5);
接收一个参数时,该参数表示截取的开始位置,默认截到原数组的末尾,可以接收负数。
(3)splice:操作 会改变原数组用于操作数组:增加、删除、替换
①
var arr = [1,2,3,4,5,6,7];
var arr1 = arr.splice(5,2,8,9,10);
其中,5代表操作的起始位置,2代表删除几个,8,9,10代表替换的元素arr = [1,2,3,4,5,8,9,10]arr1 = [6,7] 输出结果为删除的元素
② 当只有一个参数时,表示从当前位置开始删除。
(4)sort 排序 会改变原数组
(5)reverse 逆序 会改变原数组
(6)indexOf 查找
var arr = ["a","b","c","小沈阳","d"];
var idx = arr.indexOf("小沈阳");
输出结果为 查询该元素的下标。
(7)join 转为字符串
var arr = [1,2,3,4,5,6,7];
var str = arr.join(&);
console.log(str)
输出结果为1&2&3&4&5&6&7此方法接收一个参数,表示间隔符号,返回值是以该间隔符号作为拼接符号组成的一个字符串,参数默认为 “,”。
(8)toSring 转为字符串
3.ES5中增加的静态数组方法:
(1)Array.isArray( 参数) 检测这个参数是不是对象。
(2)arr.forEach() 是一个迭代器,主要用于给定一种固定的循环方式,能够在不暴露内部数据结构的情况下,顺序的遍历内部数据。
接收一个函数作为参数,该函数有三个实参,函数执行的次数为数组的长度
第一个参数是数组的成员
第二个参数是数组的索引
第三个参数是数组本身 如:
var arr = ["a","b","c","d"]
arr.forEach(function(value,index,arr){
console.log(value,index,arr,this)
},{a : 1})
(3)arr.map()该方法是一个映射方法,会根据原数组生成一个新数组。(4)arr.filter()该方法是用于根据条件过滤数组,接收一个函数作为参数 如果该函数在执行的过程中返回真。则对应的元素会被过滤到一个新数组中
(5)arr.some()断言方法。
参数是函数,会根据函数的条件进行判定,函数会执行多次,当函数 的返回值为真的时候,停止循环,并且some()返回真。如果循环结束后,都为假。some才会为假。
(6)arr.every()同样是断言方式。
参数也是函数。会根据函数的条件进行判定。与some很相似。 但是只有函数的返回值为真时,才会进行下一次循环,一旦函数的返回值假,就会立即停止循环every的结果为假。只有函数的每一次结果为真时,every()的返回值才为真
(7)arr.fill()填充方法。
有三个参数。第一个参数表示要填充的成员。第二个参数表示填充的起始位置(默认为0)。但三个参数表示填充的结束位置(默认为数组的长度)。该方法会改变原数组 如果只有一个参数,则表示将整个数字的成员全部变成这个参数
(8)arr.reduce()循环方法
。参数是一个函数。循环的次数是该数组的长度-1。上一次的函数返回值(如果是刚开始就是默认角标0)成员索引原数组
(9)arr.reduceRight()和8相似。
区别:reduce是从左向右循环,本方法是从右向左循环
注:以上是作者结合自己所学的知识整理出的数组的方法,如果哪些知识点不严谨还请各位大神指点