javascript中数组的常用遍历方法

  • 遍历方法: forEach()、map()、filter()、some()、 every()、reduce()

1.forEach()

  • for 循环的加强版
  • forEach()不会改变原始数组。
  • forEach()方法遍历数组的每一项
  • 注意:除了抛出异常以外,没有办法中止或跳出forEach()循环。如果你需要中止或跳出循环,forEach()方法不是应当使用的工具。
// 完整写法
	// array.forEach(function(Value, index, arr))
	// Value:数组当前项的值
	// lindex:数组当前项的索引
	// larr:数组对象本身
	
	var array = ['1', '2', '3'];
	
	array.forEach(function(Value, index, arr) {
	  console.log(Value);
	  // 1
	  // 2
	  // 3
	});

2.map()

  • map()不会改变原始数组。
  • map()方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
// 完整写法
	// array.map(function(Value, index, arr))
	// Value:数组当前项的值
	// lindex:数组当前项的索引
	// larr:数组对象本身

	const array1 = [2, 4, 9, 16];

	const map1 = array1.map(x => x * 2);

	console.log(map1);
	// map1 = [4, 8, 18, 32]

3.filter()

  • filter()不会改变原始数组。
  • filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素, 用途:用于筛选(过滤)数组,实用+
// 完整写法
	// array.map(function(Value, index, arr))
	// Value:数组当前项的值
	// lindex:数组当前项的索引
	// larr:数组对象本身

	const array = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

	const newArray = array.filter(value => value.length > 6);

	console.log(newArray);
	// newArray = ["exuberant", "destruction", "present"]

4.some()

  • some()遍历查找满足条件的元素是否存在,如果存在返回true, 不存在返回false,并且一旦找到满足条件的元素就终止遍历
// 完整写法
	// array.map(function(Value, index, arr))
	// Value:数组当前项的值
	// lindex:数组当前项的索引
	// larr:数组对象本身
    const array = ['1', '4', '8'];
    var a = array.some(function(value) {
      console.log(value)
      // 打印
      // 1
      // 4
      // 8不会被打印 因为遍历到4 已经满足条件
      return value > 2
    });
    // 箭头函数简写
    //const a = array.some(value  => value > 2)
    console.log(a) // true

5.every()

  • every()方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
// 完整写法
	// array.map(function(Value, index, arr))
	// Value:数组当前项的值
	// lindex:数组当前项的索引
	// larr:数组对象本身
    const array = ['1', '4', '8'];
    var b = array.every(function(value) {
      console.log(value)
       // 打印
       // 1
       // 4,8 不会被打印 因为遍历到4 已经不满足条件
      return value > 2
    });
    console.log(b) // false

6.reduce()

  • reduce()方法遍历数组,常用于统计数量
  • 语法:array.reduce(function(total, value, index, arr), initialValue)
  • total: 必需。初始值, 或者计算结束后的返回值。
  • currentValue: 必需。当前元素
  • index: 可选。当前元素的索引
  • arr: 可选。当前元素所属的数组对象。
  • initialValue: 可选。传递给函数的初始值(tatal)
  • 注意: reduce() 对于空数组是不会执行回调函数的。
// array.reduce(function(total, value, index, arr), initialValue)
    // total:  必需。初始值, 或者计算结束后的返回值。
   	// currentValue: 必需。当前元素
   	// index:  可选。当前元素的索引
    // arr:  可选。当前元素所属的数组对象。
    const array = [10, 20, 30];
    const b = array.reduce(function(tatal, value) {
      return tatal += value
    },0)// 给tatal设置初始值为0
    console.log(b) // 60