JS数组操作

199 阅读3分钟

Js数组操作

  • filter()

    /**
     *要求:过滤掉小于10的数组元素
     *callback的三个参数:当前元素,当前元素的索引和当前的数组对象
     */
    function callback(member, index, array) {
        return member>=10;
    }
    
    var filtered = [12, 11, 5, 15, 6, 3, 10].filter(callback);
    //原数组:[12, 11, 5, 15, 6, 3, 10]
    //新数组:[12, 11, 15, 10]
    

    对于数组中的每个元素都执行一次传入的指定函数(callback)并且创建新数组,这个新数组是所有回调函数执行时返回值为**true**的原数组元素组成的。

  • map()

    /**
     *要求:将所有的数组元素转换为大写
     *callback的参数是当前元素,当前元素的索引和当前的数组对象
     */
    var strings = ["hello", "Array", "WORLD"];
    
    function callback(member, index, array)
    {
        return member.toUpperCase();
    }
    
    var uppers = strings.map(callback);
    //原数组:["hello", "Array", "WORLD"]
    //新数组:["HELLO", "ARRAY", "WORLD"]
    

    对于数组中的每个元素都执行一次传入指定函数(callback)并且创建新数组,这个新数组是每个元素进入函数之后在里面进行一系列操作返回的新元素组成的值。

  • some()

    /**
     *要求:检查是否有数组元素大于等于10
     *callback的参数是当前元素,当前元素的索引和当前的数组对象
     */
    var strings = ["hello", "Array", "WORLD"];
    
    function callback(member, index, array)
    {
        return (member >= 10);
    }
    
    var passed1 = [2, 5, 8, 1, 4].some(callback);
    //passed1为false
    var passed2 = [12, 5, 8, 1, 4].some(callback);
    //passed1为true
    

    是不是有一个满足

    对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 true,如果发现这个元素,some 将返回 true,如果回调函数对每个元素执行后都返回 falsesome 将返回 false。

  • every()

    /**
     *要求:测试是否所有数组元素都大于等于10
     *callback的参数是当前元素,当前元素的索引和当前的数组对象
     */
    
    function callback(member, index, array) {
        return (member >= 10);
    }
    var passed1 = [12, 5, 8, 130, 44].every(callback);
    // passed1是false
    var passed2 = [12, 54, 18, 130, 44].every(callback);
    // passed2是true
    

    是不是所有的都满足

    对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 false,如果发现这个元素,every 将返回 false,如果回调函数对每个元素执行后都返回true ,every 将返回 true

  • forEach()

    /**
     *要求:打印数组内容
     *callback的参数是当前元素,当前元素的索引和当前的数组对象
     */
    function callback(member, index, array) {
        console.log(member);
    }
    [2, 5, 9].forEach(printElt);
    //控制台输出:
    //2
    //5
    //9
    

    遍历数组,不返回,内部操作不改变数组。

  • indexOf()

    /**
     * searchElement是要搜索的元素
     * fromIndex是开始搜索的位置
     */
    var index = array.indexOf(searchElement[, fromIndex]);
    

    比较 searchElement 和数组的每个元素是否绝对一致(===),当有元素符合条件时,返回当前元素的索引。如果没有发现,就直接返回 -1 。搜索是正向进行的。

  • lastIndexOf()

    功能和参数和indexOf一样,但是搜索是反方向进行的。