常用的遍历数组方法
1. forEach
说明: forEach是最简单、最常用的数组遍历方法,它提供一个回调函数,可用于处理数组的每一个元素,默认没有返回值。回调函数的参数,第一个参数是数组的每一项,第二个参数是数组中每一项的索引,第三个参数是该数组本身,后两个参数可选
示例:
var arr = [1, 2, 3, 4, 5]
arr.forEach((item, index) => {
console.log(item, index);
})
// 输出
//1 0
//2 1
//3 2
//4 3
//5 4
2.filter
说明:filter遍历数组一般用于筛选该数组中是否有符合条件的数组元素,默认返回一个新数,参数和forEach一样,原数组的元素执行了回调函数之后若返回值为true,则会添加到新数组中.
示例:
var arr = [1, 2, 3, 4, 5]
var newArr = arr.filter(item => item > 3)
console.log(newArr);
//[4, 5]
3.every
说明:every遍历数组一般用于判断数组中是否有满足条件的数组元素,所有元素都满足条件是返回值为true,若有一个不满足则返回false.
示例:
var arr = [1, 2, 3, 4, 5]
console.log(arr.every(item => item > 3));
//flase
4.some
说明: some方法和every的用法非常类似,不同的是只要有一个满足条件返回值就为true,没有元素满足条件则为false
示例:
var arr = [1, 2, 3, 4, 5]
console.log(arr.some(item => item > 3));
//true
5.map
说明:返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
6.find
说明:方法返回通过测试(函数内判断)的数组的第一个元素的值
添加数组元素
1.push
说明: 从后面追加 返回值是添加后数组的长度,会改变原数组
示例:
var arr = [1, 2, 3, 4, 5]
console.log(arr.push(6, 7));
console.log(arr);
// 7
// [1, 2, 3, 4, 5, 6, 7]
2.unshift
说明: 从前面添加 返回值是添加后数组的长度,会改变原数组
示例:
var arr = [1, 2, 3, 4, 5]
console.log(arr.unshift(6, 7));
console.log(arr);
// 7
// [6, 7, 1, 2, 3, 4, 5]
3.concat
说明: 拼接数组,返回的是一个新数组
示例:
var arr = [1, 2, 3, 4, 5]
var arr2 = [6, 7]
console.log(arr.concat(arr2));
console.log(arr);
// [1, 2, 3, 4, 5, 6, 7]
// [1, 2, 3, 4, 5]
注意: 返回值为一个新数组而原数组不变
删除数组元素
1.pop
说明: 从后删除 返回值是删除的元素,会改变原数组
示例:
var arr = [1, 2, 3, 4, 5]
console.log(arr.pop());
console.log(arr);
// 5
// [1, 2, 3, 4]
2. shift
说明: 从前面删除 返回值是删除的元素,会改变原数组
示例:
var arr = [1, 2, 3, 4, 5]
console.log(arr.shift());
console.log(arr);
// 1
// [2, 3, 4, 5]
截取数组元素
1.splice
说明: splice方法可以给三个参数.1.从哪开始 2.截取的个数 3.替换的元素,一般用于删除数组中指定索引的元素,也可以替换指定索引的元素,会改变原数组
示例:
// 删除指定元素
var arr = [1, 2, 3, 4, 5]
console.log(arr.splice(2, 2));
console.log(arr);
// [3, 4]
// [1, 2, 5]
// 替换指定元素
var arr = [1, 2, 3, 4, 5]
console.log(arr.splice(2, 2, 6));
console.log(arr);
// [3, 4]
// [1, 2, 6, 5]
2.slice
说明: 截取数组元素,返回一个新数组,新数组的元素为截取出来的元素,可以给两个参数,
1.开始的索引 2.结束的索引(可以省略,截取的元素不包括这个) ,不会改变原数组
示例:
// 只有一个参数
var arr = [1, 2, 3, 4, 5]
console.log(arr.slice(1));
console.log(arr);
// [2, 3, 4, 5]
// [1, 2, 3, 4, 5]
// 两个参数
var arr = [1, 2, 3, 4, 5]
console.log(arr.slice(1, 3));
// [2, 3]
数组转换为字符串
1.toString: 把数组转换为字符串
2.join: 把数组转换为字符串 可以传入不同的符号进行连接 默认用逗号连接
示例:
var arr = [1, 2, 3, 4, 5]
console.log(arr.join('|'));
// 1|2|3|4|5
其他方法
1.reduce: 数组求和
代码示例:
var arr = [1, 2, 3, 4, 5]
console.log(arr.reduce((sum, val) => sum + val, 0));
// 15
2.reverse: 反转数组
代码示例:
var arr = [1, 2, 3, 4, 5]
arr.reverse()
console.log(arr);
// [5, 4, 3, 2, 1]
3.sort: 冒泡排序
代码示例:
// 正向排序
var arr = [7, 2, 6, 4, 5]
arr.sort((a, b) => a - b)
console.log(arr);
// [2, 4, 5, 6, 7]
// 反向排序
var arr = [7, 2, 6, 4, 5]
arr.sort((a, b) => b - a)
console.log(arr);
// [7, 6, 5, 4, 2]
4. includes: 判断一个数组是否包含一个指定的值,如果是返回 true,否则false
代码示例:
var arr = [1, 2, 3, 4, 5]
var flag = arr.includes(2)
var flag2 = arr.includes(6)
console.log(flag) // true
console.log(flag2) // false