unshift
给数组开头添加一个或多个元素 -- 返回新数组的长度
语法 : 数组.unshift()
var arr = [1,2,3]
arr.unshift(4)
var brr = arr.unshift(5)
console.log(arr) //5,4,1,2,3
console.log(brr) //5
shift
将数组的第一个元素删掉
语法 : 数组.shift() -- 返回被删掉的元素
var arr = [1,2,3]
var ele = arr.shift()
console.log(arr) //2,3
console.log(ele) //1
push
给数组末尾添加一个或多个元素
语法 : 数据.push(1个或多个元素) -- 返回新数组的长度
var arr = [1,2,3]
var length= arr.push(4,5,6)
console.log(arr) //1,2,3,4,5,6
console.log(length) //6
pop
删除数组的最后一个元素
语法 : 数组.pop() -- 返回被删掉的元素
var arr = [1,2,3]
var ele= arr.pop()
console.log(arr) //1,2
console.log(ele) //3
splice
在数组的任意一个位置可以添加,删除,修改一个或多个元素
语法 : 数组.splice(开始下标,要删除的元素个数,在删除位置要放进去的1个或多个元素) -- 返回所有被删除的元素组成的数组
var arr = [1,2,3]
arr.splice(1,1,4) //修改
arr.splice(1,0,4,5,6) // 添加
var brr = arr.splice(1,1) //删除 2
console.log(arr) //1,5,6,4,3
console.log(brr) //4
reverse
反转数组
语法 : 数组.reverse() -- 返回反转后的数组
var arr = [1,2,3]
var brr = arr.reverse()
console.log(arr) //3,2,1
console.log(arr === brr) //true
sort
排序
语法 : 数组.sort()
sort() 进行了升序排列 -- 返回排序后的数组
var arr = [12,8,6,4,7,2,1,3]
arr.sort()
console.log(arr) //默认使用字符串的规则进行排列 [1, 12, 2, 3, 4, 6, 7, 8]
按照数字顺序排列
语法 : 数组.sort(function(a,b){
return a - b 升序
return b - a 降序
})
var arr = [12,8,6,4,7,2,1,3]
var brr = arr.sort(function(a,b){
return a -b
})
console.log(arr) //[1, 2, 3, 4, 6, 7, 8, 12]
console.log(brr) //[1, 2, 3, 4, 6, 7, 8, 12]
console.log(arr === brr) //true
总结 : 以上七种会改变原数组
slice
从数组中截取其中一部分
语法 : 数组.slice(开始下标,结束下标) --返回截取出来的那一部分组成的数组
注意事项 :
包前不包后,第二个参数可以不给,省略第二个参数就默认截取到数字末尾;两个参数都不加,可以从开头截取到结尾
var arr = [1,2,3,4,5,6,7,8,9]
var brr = arr.slice(3,6) //截取4,5,6
var brr = arr.slice() //全部截取
console.log(arr) //[1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(brr) //[1, 2, 3, 4, 5, 6, 7, 8, 9]
concat
将一个或多个元素或数组合并成一个更大的数组
语法 : 数组.concat(1个或多个元素) -- 返回更大的新数组
//合并元素
var arr = [1,2,3]
var brr = arr.concat(4,5,6)
console.log(arr) //[1, 2, 3]
console.log(brr) //[1,2,3,4,5,6]
//合并数组
var arr = [1,2,3]
var crr = [4,5,6]
var drr = [7,8,9]
var brr = arr.concat(crr,drr)
console.log(brr) //[1,2,3,4,5,6,7,8,9]
indexof
查找一个元素在数组中第一次出现的下标
语法 : 数组.indexof(元素) -- 找到了就返回下标,找不到返回-1
var arr = [1,2,3,1]
var index = arr.indexOf(1)
console.log(index) //0
//通常会利用找到和找不到的返回值来判断一个元素是否在数组中
语法 : indexof(元素,开始下标) -- 从开始下标开始向后找元素第一次出现的下标
var arr = [1,2,3,1]
var index = arr.indexOf(1,2)
console.log(index) //3
lastIndexOf
查找元素在数组中最后一次出现的下标
var arr = [1,2,3,1]
var idx = arr.lastIndexOf(3)
console.log(idx) //2
语法 : 数组.lastIndexOf(元素,下标) - 将指定的下标当作数组的结尾,找元素在数组中最后一次出现的下标
var arr = [1,2,3,1]
var idx = arr.lastIndexOf(3,1)
console.log(idx) //-1
join
使用指定的连接符将数组中的每个元素链接成一个字符串
语法 : 数组.join(连接符) -- 返回一个字符串
var arr = ['a','b','c']
var str = arr.join('_') //a_b_c
var str = arr.join('')//将所有元素合在一起 abc
var str = arr.join()//不指定连接符默认用逗号 a,b,c
console.log(str)
foreach
用于遍历数组 不遍历空元素
语法 :var brr = 数组.foreach(function(value,index,array){})
value - 代表遍历出来的每个元素
index - 代表每个元素的下标
array - 代表当前正在遍历的这个数组
var arr = ['a','b','c']
arr.forEach(function(value,index,array){
console.log(value,index,array)
})
//不能用break
filter
将数组中满足指定条件的元素都组成一个新的数组并返回
语法 :
var brr = 数组.filter(function(value,index,array){})
value - 代表遍历出来的每个元素
index - 代表每个元素的下标
array - 代表当前正在遍历的这个数组
return 条件
var arr = [60,59,62,70]
var brr = arr.filter(function(value){
return value>60
})
console.log(brr) //62,70
map
将数组中的每个元素都处理成新的元素,所有新的元素组成新的数据返回
语法 : var brr = 数组.map(function(value,index,array){})
value - 代表遍历出来的每个元素
index - 代表每个元素的下标
array - 代表当前正在遍历的这个数组
return true后的新元素
var arr = [1,2,3,1]
var brr = arr.map(function(v) {
v += 2
return v
})
console.log(brr); // [3, 4, 5, 3]
every
判断数组中是否所有元素都满足指定条件,都满足就返回true
语法 : var bool = 数组.every(function(value, index, array) {})
value - 代表遍历出来的每个元素
index - 代表每个元素的下标
array - 代表当前正在遍历的这个数组
return 条件
var arr = [1,2,3,1]
var bool = arr.every(function(v) {
return v >= 18
})
console.log(bool); //false
some
判断数组中是否至少有一个满足条件,都不满足条件就返回false
语法 : 数组.some(function(value,index,array){})
value - 代表遍历出来的每个元素
index - 代表每个元素的下标
array - 代表当前正在遍历的这个数组
return 条件
var arr = [66,98,45,78]
var bool = arr.some(function(v){
return v < 60
})
console.log(bool) //true
find
从数组中找到满足条件的第一个元素 - 找到了就返回元素,找不到就返回undefined
语法 : var ele = 数组.find(function(value, index, array) {})
value - 代表遍历出来的每个元素
index - 代表每个元素的下标
array - 代表当前正在遍历的这个数组
var arr = [56, 89, 92, 86, 46, 32]
var ele = arr.find(function(v) {
return v < 90
})
console.log(ele); //56
findIndex
从数组中找到满足条件的第一个元素的下标 - 找到就返回下标,找不到就返回-1
语法: var ele = 数组.findIndex(function(value, index, array) {})
value - 代表遍历出来的每个元素
index - 代表每个元素的下标
array - 代表当前正在遍历的这个数组
var arr = [56, 89, 92, 86, 46, 32]
var idx = arr.findIndex(function(v) {
return v < 60
})
console.log(idx); //0
reduce
归并 - 数组求和
语法: 数组.reduce(function(a, b) {
a第一次代表第一个元素,第二次开始代表上一次返回的结果
b第一次代表第二个元素,第二次代表第三个元素,...
})
var arr = ['111', '222', '333']
arr.reduce(function(a, b) {
console.log(a, b); //111 222
})
//a + b 的和
var arr = [1,2,3,5,6,7,8,9]
var sum = arr.reduce(function(a, b) {
return a + b
})
console.log(sum); //41