数组的常用方法
Array.length
length是Array的实例属性,返回的是数组中元素的个数 并且总是大于数组中最后一项的下标
let arr = [1, 2, 3, 4]
console.log(arr.length) // 4
indexOf
indexOf(‘ele’,fromIndex)
参数一: 查询的元素
参数二(可选): 从下标哪里的位置开始查找,默认是0, 0就是查询整个数组
indexOf('')
let arr1 = ['a', 'b', 'c']
let b = arr1.indexOf('a')
console.log(b); // 返回的下标(索引)为 0
console.log(arr1[0]) // 'a'
Array.isArray
判断是否是Array(数组)类型 返回布尔值 true/ false
let arr = [5, 14, 47]
console.log(Array.isArray(arr)) // true
console.log(Array.isArray({ a: 10 })) // false
push(掌握)
该方法可以向数组的末尾添加一个或多个元素,并返回数组的新长度
let arr = ['red', 'blue', 'green']
arr.push('yellow')
console.log(arr) // [ 'red', 'blue', 'green', 'yellow' ]
every(掌握)
定义一个条件,它会循环数组中的每一项,如果满足定义的条件,则返回 true,否则 false
let arr = [22, 12, 19, 21, 36]
// 很明显,数组中的每一项都小于40 ,返回 false
let a = arr.every(item => item > 40)
console.log(a) // false
filter(掌握)
循环判断数组中的每一项元素是否满足定义的条件,返回一个新的数组,里面的元素是满足条件的元素
let arr = [1, 3, 5, 7, 6]
// 查询并返回数组中大于5的元素
let a = arr.filter(item => item > 5)
console.log(a) // [ 7, 6 ]
findIndex(掌握)
返回数组中第一个满足条件的元素的下标
let arr = [11, 24, 26, 31, 15]
// 查询数组中大于25的元素
let a = arr.findIndex(item => item > 25)
console.log(a) // 2
find
find和findIndex不要弄混淆了,find是返回满足条件的元素(值)
let arr = [1, 12, 44]
let a = arr.find(item => item > 15)
console.log(a) // 44
forEach(掌握)
循环数组中的每一个元素,并对每一个元素提供一个函数
let arr = [3, 5, 9]
let a = arr.forEach(item => console.log(item))
// 输出:3 5 9
//
let arr = [3, 5, 9]
let sum = 0
let sumFn = function (a, b) {
return a + b
}
arr.forEach( item => {
sum = sumFn(sum, item)
})
console.log(sum) // 17
reduce(掌握)
循环数组,让数组中的每一项进行一次计算,返回计算后的总和
let arr = [1, 2, 3, 4]
let a = arr.reduce((temp, item) => temp + item, 0)
console.log(a) // 10
// 第四个参数我们定义为 0 ,也就是初始值是从0开始相加
// temp第一次相加时: temp = 0 + 1
// 第二次: temp = 1 + 2
// 第三次: temp = 3 + 3
// 第四次: temp = 6 + 4
// 最后输出的结果就是 :10
// 如果我们把初识值设置为2,或者任意一个数
// 比如 设置为2 那就从2 开始相加
// 第一次: temp = 2 + 1
// 第二次: temp = 3 + 2 以此类推
// 第四个参数一般设置为0, 但是也可以不设置,不设置的话reduce的计算方式是这样子的
// 第一次: temp = 1 + 2
// 第二次: temp = 3 + 3
// 第三次: temp = 6 + 4 最后输出的结果还是10 并不会影响结果
pop
删除数组最后一个元素,并返回被元素的元素,此方法会改变原数组的长度
let arr = ['周一', '周二', '周三']
console.log(arr.pop()) // 周三
console.log(arr) // [ '周一', '周二' ]
join(掌握)
将数转化为字符串,使数组用指定的分隔符字符串分割数组中的元素, 数组默认用逗号分割
let arr = ['red', 'blue', 'green']
let a = arr.join('-')
console.log(a) // red-blue-green
splice(掌握)
该方法通过删除和替换数组中的现有元素,或者添加新的元素来改变原数组的内容
如果第三个参数不写的话,splice只会从数组中移除元素
let arr = ['周一', '周二', '周三', '周四', '周五']
// 第一个参数是, 从数组中下标第几个开始
// 第二个参数是,往后删除几个
arr.splice(0, 1)
console.log(arr) // [ '周二', '周三', '周四', '周五' ]
// 第三个参数 要添加的元素
// 如果第三个参数不写的话,splice只会从数组中移除元素
let arr = ['周一', '周二', '周三', '周四', '周五']
arr.splice(0, 1, '周六')
console.log(arr) // [ '周六', '周二', '周三', '周四', '周五' ]
slice
该方法将数组的一部分的浅拷贝返回到一个新的数组对象中,不会修改原数组
let arr = ['red', 'blue', 'green', 'yellow', 'skyblue']
// 第一个参数: 从下标第几项拷贝,拷贝当前下标和后面的所有元素
let arr1 = arr.slice(1)
// 第二个参数是截止位置
let arr2 = arr.slice(1,3)
console.log(arr1) // [ 'blue', 'green', 'yellow', 'skyblue' ]
console.log(arr2) // [ 'blue', 'green', 'yellow']
unshift
该方将一个或者多个元素添加到数组的开头,并返回新数组的长度
let arr = [3, 4, 5, 6]
// 把1和2 从数组的前面添加进去
arr.unshift(1, 2)
console.log(arr) // [ 1, 2, 3, 4, 5, 6 ]
以上是我总结的大部分比较常用的数组的方法,有不足或更好的方法欢迎补充!!