1.push
语法: 数组.push(数据)
作用:向数组末尾添加数据
返回值:追加数据后,数组的最新长度
var arr = [1,2,3]
console.log(arr)
var len = arr.push(500)
console.log(len) //4
console.log(arr) //[1,2,3,500]
2.pop
语法: 数组.pop()
作用:删除数组最后一条数据
返回值:被删除的数据
var arr = [1,2,3]
console.log(arr)
var po = arr.pop()
console.log(po) //3
console.log(arr)//[1,2]
3.unshift
语法: 数组.unshift(数据)
作用:向数组开头添加数据
返回值:添加数据后,数组的最新长度
var arr = [1,2,3]
console.log(arr)
var len = arr.unshift(666)
console.log(len)//4
console.log(arr)//[666,1,2,3]
4.shift
语法: 数组.shift()
作用:删除数组第一条
返回值:被删除的数据
var arr = [1,2,3]
console.log(arr)
var st = arr.shift()
console.log(st)//1
console.log(arr)//[2,3]
5.reverse
语法: 数组.reverse()
作用:反转数组
返回值:反转后的数组
var arr = [1,2,3]
console.log(arr)
var newArr = arr.reverse()
console.log(newArr)//[3,2,1]
console.log(arr)//[3,2,1]
6.sort
返回值:排序后的数组
语法1: 数组.sort()
作用:将数组转化为字符串后,一位一位地对比
var arr = [100,101,200,10001,100002,1000003,10]
console.log('原始数组:',arr)
var arr1 = arr.sort()
console.log(arr1)//[10,100,1000003,100002,10001,101,200]
console.log(arr)//[10,100,1000003,100002,10001,101,200]
语法2: 数组.sort(function(a,b){return a - b})
作用:按照数字大小升序排列
var arr = [100,101,200,10001,100002,1000003,10]
console.log('原始数组:',arr)
var arr1 = arr.sort(function(a,b){return a - b})
console.log(arr1)//[10,100,101,200,10001,100002,1000003]
console.log(arr)//[10,100,101,200,10001,100002,1000003]
语法3: 数组.sort(function(a,b){return b - a})
作用:按照数字大小降序排列
var arr = [100,101,200,10,'999','123abc','qwe']
console.log('原始数组:',arr)
var arr1 = arr.sort(function(a,b){return b
- a})
consolr.log(arr1)//['999',200,101,100,10,'123abc','qwe']
consolr.log(arr)//['999',200,101,100,10,'123abc','qwe']
7.splice
返回值:截取出来的部分内容 组成的数组
语法1:数组.splice(开始索引,多少个)
作用:截取数组部分内容
var arr = [1,2,3,4,5,6,7,8,9]
console.log('原始数组:', arr)
var arr1 = arr.splice(3,4)//从下标3开始截取,截取4个数据
console.log(arr1)//[4,5,6,7]
console.log(arr)//[1,2,3,8,9]
语法2:数组.splice(开始索引,多少个,插入的数据1,插入的数据2...)
作用:截取数组部分内容,并插入新的数据
var arr = [1,2,3,4,5,6,7,8,9]
console.log('原始数组:', arr)
var arr1 = arr.splice(3,4,'数据1','数据2')
console.log(arr1)//[4,5,6,7]
console.log(arr)//[1,2,3,'数据1','数据2',8,9]
8.slice
语法:数组.slice(开始索引,结束索引)
参数:1.包前不包后;2.不写开始索引的话默认是0,不写结束索引默认是数组的length;3.参数支持写负数,表示倒数第几个,也就是length+负数
作用:截取数组部分内容
返回值:截取出来的部分内容组成的新数组
var arr = [1,2,3,4,5,6,7,8,9]
console.log('原始数组:', arr)
var arr1 = arr.slice(3,4)
console.log(arr1)//[4]
var arr2 = arr.slice(5)//不写结束索引,相当于写了数组.length
console.log(arr2)//[6,7,8,9]
var arr3 = arr.slice()//什么都没写,相当于写了arr.slice(0,arr.length)
console.log(arr3)//[1,2,3,4,5,6,7,8,9]
var arr4 = arr.slice(3,-2)//相当于arr.slice(3,7)
console.log(arr4)//[4,5,6,7]
console.log(arr)//[1,2,3,4,5,6,7,8,9]
9.concat
语法: 数组.concat(数组1,数组2...)
作用:进行数据拼接,把小括号里面的东西拼接在原数组中
返回值:拼接好的数组
var arr = [1,2,3]
console.log('原始数组:',arr)//[1,2,3]
var arr1 = arr.concat([4,5,6],[10,20],['a','b','c'],'qwer')
console.log(arr1)//[1, 2, 3, 4, 5, 6, 10, 20, 'a', 'b', 'c', 'qwer']
console.log(arr)//[1,2,3]
10.join
语法: 数组.join('连接符')
作用:使用"连接符",把数组内的每一个数据连接成一个字符串(不写连接符,默认使用的是 逗号)
返回值:连接好的字符串
var arr = [1,2,3]
console.log('原始数组:',arr)//[1,2,3]
var arr1 = arr.join()//不写连接符,默认是逗号
console.log(arr)//1,2,3
var arr2 = arr.join('!')
console.log(arr)//1!2!3
console.log(arr)//[1,2,3]
11.indexOf
语法: 数组.indexOf(要检查的数据,开始索引)
作用:在开始索引的位置,从前到后(从左到右)检查该数据第一次在该数组内出现的索引
返回值:找到数据的情况下,会将该数据第一次出现的索引返回;没找到的情况下,会直接返回-1
*备注:开始索引不写的时候 默认是0
var arr = [1,1,2,2,3,3,0,4,0]
var arr1 = arr.indexOf(0)
console.log(arr1)//6
var arr2 = arr.indexOf(1,3)//此时要检索的数字是1,从下标为3的位置上按照从左到右的顺序查找,因为后续并没有数字1,所以此时应该返回-1
console.log(arr2)//-1
12.lastIndexOf
语法: 数组.lastIndexOf(要检查的数据,开始索引)
作用:在开始索引的位置,从右到左检查该数据第一次在该数组内出现的索引
返回值:找到数据的情况下,会将该数据第一次出现的索引返回;没找到的情况下,会直接返回-1
var arr = [1,1,2,2,3,3,0,4,0]
var arr1 = arr.lastIndexOf(3)
console.log(arr1)//5
var arr2 = arr.lastIndexOf(3,2)//此时在下标2的位置按照从右向左的顺序查找,但是此时在数组中后续的位置并未出现数字3,所以应该返回-1
console.log(arr2)//-1
13.forEach
语法:数组.forEach(function(item,index,origin){})
*item:数组的每一项的值
*index:数组的每一项对应的下标
*origin:原始数组 (了解即可,一般没人用)
作用:遍历数组
返回值:该方法永远没有返回值(undefined)
var arr = [100,200,300,400,500,600]
arr.forEach(function(item,index,origin){
console.log(item,index)
console.log(origin)
})
14.map
语法:数组.map(function(item,index,origin){})
作用:映射数组
返回值:返回一个和原始数组长度相同的数组,但是内部数据可以经过我们的映射加工
映射加工:就是在函数内 以return的形式书写
var arr = [100,200,300,400,500,600]
var arr1 = arr.map(function(item,index,origin){
return item * 2
})
console.log(arr1)// [200,400,600,800,1000,1200]
15.filter
语法:数组.filter(function(item,index,origin){})
作用:过滤数组
返回值:返回一个新数组,内部存储的是原始数组过滤出来的部分内容
过滤条件: 过滤条件以return的形式书写
var arr = [100,200,300,400,500,600]
var arr1 = arr.filter(function(item,index,origin){
return item > 350
})
console.log(arr1)
16.find
语法:数组.find(function(item,index,origin){})
作用:在数组内查找满足条件的第一项
返回值:找到的数据,如果没找到返回的是undefined
*查找条件以 return 的形式书写
var arr = [100,200,300,400,500,600]
var arr1 = arr.find(function(item,index,origin){
return item > 350
})
console.log(arr1)// 400
17.findIndex
语法:数组.findIndex(function(item,index,origin){})
作用:在数组内查找满足条件的第一项的下标
返回值:找到的数据的下标,人如果没找到返回的是-1
*查找条件以 return 的形式书写
var arr = [100,200,300,400,500,600]
var arr1 = arr.findIndex(function(item,index,origin){
return item >350
})
console.log(arr1)// 3
18.some
语法:数组.some(function(item,index,origin){})
作用:判断数组内是否有一个满足条件
返回值:一个布尔值 true/false
*判断条件以 return 的形式书写
var arr = [100,200,300,400,500,600]
var arr1 = arr.some(function(item,index,origin){
return item > 500
})
console.log(arr1)// true
19.every
语法:数组.every(function(item,index,origin){})
作用:判断数组内是否全都满足条件
返回值:一个布尔值 true/false
*判断条件以 return 的形式书写
var arr = [100,200,300,400,500,600]
var arr1 = arr.every(function(item,index,origin){
return item >350
})
console.log(arr1)// false
20.reduce
语法:数组.reduce(function(prev,item,index,orign{},init))
*prev: 表示初始值或者上一次的运算结果
*item:数组的每一项的值
*index:数组的每一项对应的下标
*origin:原始数组
作用:用来实现叠加效果
返回值:最终叠加的结果
注意点:
- 叠加条件以 return 的形式书写
- prev 的值,如果传递了 init,就是 init 的值,如果没有传递 init ,那么就是数组下标[0]的值
- 如果传递了 init,循环执行 数组.length 次,如果没有传递 init, 循环执行 数组.length - 1 次
var arr = [1,2,3,4]
console.log('原始数组:',arr)
var str1 = arr.reduce(function(prev,item,index,origin){
return prev + item
},0)
console.log( str1)//10
var str2 = arr.reduce(function(prev,item,index,origin){
return prev + item
})
console.log( str2)//10