push 推 在数组的末尾添加一个或多个数组元素,添加元素后length也会有相应的变化,会改变原数组
var n = [1, 4, 6, 8, 0]
arr.push(111, 22, 333, 44)
console.log(arr);
unshift 在数组的最前面添加一个或多个数组元素,添加元素后length也会有相应的变化,之前元数的下标也会相应改变
var n = [1, 4, 6, 8, 0]
arr.unshift(12122, 22222)
console.log(arr);
pop 删除数组中最后一个元数,不需要传参,一次只能删一个,返回值是删除的那个元素
shift 删除数组中最前面的元数,不需要传参,一次只能删一个,返回值是删除的那个元素
revese()翻转数组
var arr = [1, 2, 3, 4, 5, 6]
//revese()翻转数组
arr.reverse()
console.log(arr);
sort return a - b //从小到大排序 return b - a //从大到小排序
var arr = [1, 5, 2, 4, 7, 0]
arr.sort(function (a, b) {
return a - b //从小到大排序
return b - a //从大到小排序
})
console.log(arr);
indexOf(元素) 通过元素查找索引,返回值是元素的索引,如果查找不存在的元素时,返回值-1 如果数组中有相同元素时,查找的索引是从前往后的第一个元素索引
var arr = [1, 33, 22, 55, 66, 45, 66]
console.log(arr.indexOf(1));//0
console.log(arr.indexOf(13));//-1
lastIndexOf()查找的索引是从后往前,并返回元素的索引,如果查找不存在的元素时,返回值-1 如果数组中有相同元素时,查找的索引是从后往前的第一个元素索引
var arr = [1, 33, 22, 55, 66, 45, 66]
console.log(arr.lastIndexOf(66));//6
console.log(arr.lastIndexOf(0));//-1
console.log(arr.lastIndexOf(66));//6
call:立即调用函数,改变this指向,主要用于继承
forEach 遍历数组,forEach内部是一个函数
var arr = [1, 2, 3, 4]
var sum = 0
arr.forEach(function (item) {
sum += item
})
console.log(sum);
array.forEach(function(item,index){}) item代表数组元素(必传项),index代表索引,array代表这个数组 特点:forEach就是单纯的遍历数组,没有返回值 ,使用return返回也拿不到值
filter 过滤器 ,返回符合条件的数据,组成一个新数组(返回一个新数组),不会改变原数组 如果没有查到符合条件的数组,会返回一个空数组
var arr = [43, 34, 56, 89, 1, 99]
var arr1 = arr.filter(function (iten) {
return iten > 80
})
console.log(arr1);
every 检查数组中是否有满足条件的元素,如果有不符合条件的会直接返回false,只有全部 满住才会返回true
some 检查数组是否有满足条件的元素,如果有一个或者一个以上就会返回true,否则返回false 特点:只要找到符合条件的数据就会终止查找,直接返回结果
var arr = [12, 45, 67, 4, 78, 5]
var flag = arr.some(function (item) {
return item < 4
})
console.log(flag);
reduce 累加器 如果没有初始值始时第一轮遍历时数组的第一个元素作为old的值
如果有初始值时第一轮遍历时初始值作为old的值
find 返回满足条件的第一个元素,如果查不到符合条件的元素,就会返回undefined
如果查到有满足条件的元素就会终止查找,直接返回符合条件的元素
findIndex 查找符合条件的元素索引,返回第一个符合条件的索引 如果没有符合条件的元素,就返回-1
map 对原数组的一一映射,批量修改数组中的元素,返回一个新数组,不会修改元素组
数组去重:indexOf set类似于数组,存的值都是唯一的,没有重复的值 reduce map filter 使用双重for循环