SOURCE

/**
 * 1.数组方法
 *    迭代(遍历)方法: forEach()、map()、filter()、some()、every();
 */

    /**
     * array.forEach(function(value, index, arr) {});
     *      value: 数组当前项的值
     *      index: 数组当前项的索引
     *      arr: 数组对象本身
     * 1. 没有返回值,本质上等同于 for 循环
     * 2. forEach 是改变原数组。
     * 3. 不支持 continue,用 return false  return true 代替。
     * 4. 不支持 break,用 try catch/every/some 代替;
     * 
        forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
        注意: forEach() 对于空数组是不会执行回调函数的。

        forEach()  continue  break
        forEach() 本身是不支持的 continue  break 语句的,我们可以通过 some  every 来实现。
        使用 return 语句实现 continue 关键字的效果
    */ 
    var arr = [2,23,31];
    arr.forEach(function(value, index, arr) {
        console.log(value+'数组当前的值');
        console.log(index+'数组当前项的索引');
        console.log(arr+'数组对象本身');
    });


    /**
     * array.map(function(value, index, arr) {}, thisValue)
     *      value: 数组当前项的值
     *      index: 数组当前项的索引
     *      arr: 数组对象本身
     *      thisValue: 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
            如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。
     * map()方法返回一个新数组, 新数组中的元素为元素数组调用函数处理后的值
     * map()方法按照原始数组顺序依次处理元素
     * 
     * map()不会改变原始数组
     * map()不会对空数组进行检测
     */
     var newMap = arr.map(function(value, index, arr) {
        return value * 2;
    });
    /**
     * 这里注意箭头函数有两种格式:
        1.只包含一个表达式,这时花括号和return都省略了。
        2.包含多条语句,这时花括号和return都不能省略。
     */
    var newMap1 = arr.map(x=>x+1)
    console.log(arr); // 2,23,31
    console.log(newMap); // 4,46,62
    console.log(newMap1); // 3,24,32


    /**
     * array.every(function(currentValue,index,arr), thisValue)
     *  every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
        every() 方法使用指定函数检测数组中的所有元素:
        如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
        如果所有元素都满足条件,则返回 true
        注意: every() 不会对空数组进行检测。
        注意: every() 不会改变原始数组。
    */
    // 检测数组 arr 的所有元素是否都大于 22 :
    var arrEvery = arr.every(val => {
        return val > 22;
    })
    console.log(arrEvery);


    /**
     * array.filter(function(value, index, arr) {})
     * 作用: 用来筛选数组的 返回新所有满足条件的数组集合
     *      filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,主要用于筛选数组
     * 
     *      1. 它直接返回一个新数组,不改变原来的数组
     *      2. value: 数组当前项的值
     *      3. index:数组当前项的索引
     *      4. arr: 数组对象本身
     */
    var arr1 = [22,33,44,55];
    var newArr1 = arr1.filter((value, index) => {
        return value > 30;
    });
    console.log(arr1)
    console.log(newArr1) // 33,44,55 

    /**
     *  array.some(function(value, index, arr) {})
     *      value: 数组当前项的值
     *      index: 数组当前项的索引
     *      arr: 数组对象本身
     *  作用: 检测数组中是否有满足条件的元素 返回布尔值
     *      
     *      some()用于检测数组中的元素是否满足指定的条件,就是查找数组中是否满足条件的元素
     * 
     *      1. 返回的值是布尔值,如果找到这个元素,返回true,然后终止循环,找不到返回false
     *      2. 如果找到第一个满足条件的元素,则终止循环,不再继续查找
     */
    var arr2 = [1,2,3,4,5];
    var flag = arr2.some((val, index) => {
        return val > 2;
    });
    console.log(flag); //  true

    /**
     * some()方法  filter()方法的比较
     * 
     *  1. filter() 查找满足条件的元素,返回的是一个数组, 而且是把所有满足条件的元素返回回来
     *  2. some() 也是查找满足条件的元素是否存在,返回的是一个布尔值,查找到第一个满足条件的元素就终止循环
     */
console 命令行工具 X clear

                    
>
console