元素添加和删除
- √为原数组改变,×为原数组不变,※不常用
- push():给数组的末尾添加一个或多个元素,返回新添加的元素 √
var arr = [2,4,5];
arr.push(3,5,6);
console.log(arr);//[2, 4, 5, 3, 5, 6]
- unshift():给数组的开头添加一个或多个元素,返回新数组的长度 √
var arr = [2,4,5];
arr.unshift(3,5,6);
console.log(arr);//[3, 5, 6,2, 4, 5]
- concat():用于连接1个或多个数组,返回连接或克隆的新数组 ×
var arr = [2,4,5];
console.log(arr.concat());//[2, 4, 5]
console.log(arr.concat(9,7,8));//[2, 4, 5,9,7,8]
var arr2 = [1,23,43];
console.log(arr.concat(9,7,8));//[2, 4, 5, 1, 23, 43]
- pop():和push对应,但功能相反,用于删除最后一个元素,返回删除的元素 √
var arr = [2,3,5];
console.log(arr.pop());//5
- shift():与unshift相对应,但功能相反,用于删除第一个元素,返回删除的元素 √
var arr = [2,3,5];
console.log(arr.shift());//2
- slice 和 splice
- slice(n,m):从索引n开始获取到m处(不包含m),返回获取的新数组 ×
var arr = [2,3,5]; console.log(arr.slice(0));//[2,3,5] console.log(arr.slice(1,2));//[3,5]- splice(n,m):从索引n开始移除m个元素,返回移除的元素数组 √
var arr = [2,3,5,6,7,8]; console.log(arr.splice(1,3));//[3, 5, 6]- splice(n,m,x):从索引n开始移除m个元素,将新的x元素添加到这,返回移除的 √
var arr = [2,3,5,6,7,8]; console.log(arr.splice(1,3,0));//[3, 5, 6]- splice(n,0,m):从索引n开始,移除0个元素,将新的x元素添加到这,返回空数组 √
var arr = [2,3,5,6,7,8]; console.log(arr.splice(1,3,0));//[] - toString():该方法用于将一个逻辑转换为字符串,无参数,返回结果 ×
var arr = [2,4,5,6,7,9]
console.log(arr.toString());//"2,4,5,6,7,9"
排序方法
- reverse():将数组倒着排序,无参数,返回倒排后的数组 √
var arr = [2, 4, 5, 6, 7, 9];
console.log(arr.reverse());//[9, 7, 6, 5, 4, 2]
- sort():将数字或字母根据Unicode编码进行排序,无参数,返回排序后结果 √
- 纯数字排序则不写参数,直接调用该方法
var arr = [9, 7, 6, 5, 4, 2]; console.log(arr.sort());//[2, 4, 5, 6, 7, 9]- 将数组从小到大排序(10以上),从大到小 b-a
var arr = [2, 14, 5, 61, 7, 19]; arr.sort(function(a,b){ return a-b }) console.log(arr);//[2, 5, 7, 14, 19, 61]
数组转换
- join():将一个数组用指定分隔符分隔,参数分隔符(默认逗号),返回最后的字符串 ×
var arr = [2,3,4,5];
console.log(arr.join("-"));//2-3-4-5
- split():将字符串按片段分隔创建数组,和join功能相反,默认的逗号创建
var str = "2:3:4:5:6";
console.log(str.split(":")); //["2", "3", "4", "5", "6"]
- toLocaleString():将数组转为本地字符串,和toString类似,此方法用特定的分隔符来将生产的字符串链接起来 ※
- valueOf():返回Array对象的原数值,通常都是在后台隐式调用,一般不会出现 ※
位置方法
- indexOf():判断数组中是否存在一个内容,从开头开始检测,返回内容所在索引,没有返回-1 ×
var arr = [2,5,6,7,8,9];
console.log(arr.indexOf(2));//0
console.log(arr.indexOf(22));//-1
- lastIndexOf():判断数组中是否存在一个内容,从尾部开始检测,返回内容所在索引,没有返回-1 ×
var arr = [2,5,6,7,8,9];
console.log(arr.lastIndexOf(2));//0
console.log(arr.lastIndexOf(22));//-1
迭代方法
- every():对数组中的每一项都运行给定的函数直接量,如果该函数对每一项都返回true,则该方法返回true
var arr = [1,2,3,4,5,6,7];
var reuslt = arr.every(function(item,index,arr){
return item > 5
})
console.log(reuslt);//false
- filer():对数组中的每一项都运行给定函数,返回该函数返回true的项组成的对象
var arr=[1,2,3,4,5,6,7];
var res=arr.filter(function(item,index,arry){
return item>5
})
console.log(res);//[6, 7]
- forEach():对数组中每一项运行给定函数,需要注意的是,这个方法没有返回值,在编码的过程中使用这个方法会带来很多便利,因为该方法就有一个遍历数组元素的作用,不用每次写一个for循环来获取数组的每一项进行操作了
var arr = [2,5,6,7,8,9];
arr.forEach(function(item,index,arr){
console.log(item);
})//2 5 6 7 8 9
- map():对数组中的每一项运行给定的函数,返回每次函数调用的结果组成的数组,这里返回的是数组。
- some():对数组中的每一项运行给定的函数,如果该函数对任一项都返回true,则该方法返回true,和every()相似,但every()是传入的函数需要每一项都满足条件,some()只要有一项满足就会返回true。
var arr = [1,2,3,4,5,6,7];
var reuslt = arr.some(function(item,index,arr){
return item > 5
})
console.log(reuslt);//true
缩小方法
reduce():从数组第一项开始逐个遍历,使用指定函数将数组的元素进行整合,只生成单个的值,第一参数是执行化简单的函数,第二个参数是一个传递给函数的初始值
var arr = [1,2,3,4,4,5,6,6];
console.log(arr.reduce(function(x,y){
return x+y
},0));//28
console.log(arr.reduce(function(x,y){
return x*y
},1))//5040
console.log(
arr.reduce(function(x,y){
return (x>y)?x:y
})//6
);
- reduceRight():该方法的使用和reduce()是一样的,这里可以联想到indexOf方法和 lastIndexOf()方法的关系,即reduceRight()方法是按照数组索引从高到低的处理数组