1、创建数组
// 字面量创建
const arr = [1,2,3]
// Array()构造函数
const arr = new Array(1,2,3)
2、数组方法
(1)增
arr[3] = 4
arr.push() // 尾部添加
arr.unshift() // 首部添加
arr.splice(2,0,4)
(2)删
arr.pop() // 尾部删除
arr.shift() // 头部删除
arr.splice(2,1) //splice(开始索引,删除几个,添加的元素) 改变原数组
(3)改
arr[2] = 5
(4)查 arr.slice(开始索引,结束索引) 返回新数组
arr[index]
arr.slice(1,2) // 截取 start <= item < end
(5)find 返回满足条件的第一个元素
const arr = [1,2,3,4,5,6,7,8,9]
const findEle = arr.find((ele, index, array) => ele > 5)
if(findEle !== undefined){
console.log(findEle) // 6
}
(6)findIndex 返回满足条件的第一个元素的索引值
const arr = [1,2,3,4,5,6,7,8,9]
const findIndex = arr.findIndex((ele, index, array) => ele > 5)
if(findEle !== undefined){
console.log(findIndex) // 5
}
(7)forEach 遍历数组所有元素 执行次数为 数组.length 次
const arr = [1,2,3,4,5,6,7,8,9]
arr.forEach((ele, index, array) => {
console.log(ele) // 1 2 3 4 5 6 7 8 9
})
(8)map 遍历数组所有元素 并返回新元素和新数组 执行次数为 数组.length 次
const arr = [1,2,3,4,5,6,7,8,9]
const newArr = arr.map((ele, index, array) => ele * 2)
console.log(newArr) // [2, 4, 6, 8, 10, 12, 14, 16, 18]
(9)filter 过滤符合要求的 执行次数为 数组.length 次
const arr = [1,2,3,4,5,6,7,8,9]
const newArr = arr.filter((ele, index, array) => {
// 根据 true 返回当前元素
return ele % 2 === 0
})
console.log(newArr) // [2,4,6,8]
以下为优化方法(出现条件,会结束循环):
循环次数 < 数组.length
(10)some(是否有一个满足) 全都false返回false,一个true结束循环返回true
const arr = [1,2,3,4,5,6,7,8,9]
const isOK = arr.some((ele, index, array) => {
return typeof ele === 'number'
})
console.log(isOK) // true
(11)every(是否全部满足) 全都true返回true,一个false结束循环并返回false
const arr = [1,2,3,4,5,6,7,8,9]
const isOK = arr.some((ele, index, array) => {
return typeof ele !== 'number'
})
console.log(isOK) // false
(12)reduce 将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
reduce(function(previousValue, currentValue, currentIndex, array) {}, initialValue)
参数:
previousValue:上一次调用回调函数的返回值,若有initialValue,则值为initialValue,没有即为arr[0]
currentValue:数组中正在处理的元素,若有initialValue,其值为arr[0],否则其值为arr[1] currentIndex:数组中正在处理的元素的索引,若有initialValue,其索引,否则其索引为1
array:用于遍历的数组
initialValue:作为第一次调用 回调函数时参数previousValue的值
求和案例:使用上次返回的结果与每个元素计算
const arr = [1,2,3,4,5,6,7,8,9]
const sum = arr.reduce((sum,ele)=>{
return sum + ele
},0)
console.log(sum) // 45