zoukankan      html  css  js  c++  java
  • JS中数组的迭代方法和归并方法

    昨天总结的JavaScript中的数组Array方法

    数组的迭代方法

    ES5中为数组定义了5个迭代方法。每个方法都要接收两个参数:要在每一项上面运行的函数和(可选的)运行该函数的作用域对象---影响this的值。

    传入方法中的函数会介绍三个参数:1.数组项的值 2. 该项在数组的中位值 3. 数组对象本身;

    every()和some()方法

     every():对数组中的每一项运行给定函数,如果每一项都返回true,则返回true,否则false;

     some():对数组中的每一项运行给定函数,如果至少有一项返回true,则返回true,否则false;

    var arr=[1,2,4,5,3,1];
    var one=arr.every(function(item,index,array){
        return (item>2);    
    });
    console.log(one);
    //false var two=arr.some(function(item,index,array){ return (item>2); }); console.log(two); //true

     filter()和map()方法

     filter():对数组中的每一项给定函数,返回值为true的项重新组成新的数组;

     map():岁数组中的每一项给定函数,返回每一项调用这个函数的结果;

    //数组中可以被2整除的数
    var arr=[1,2,4,5,3,1];
    var one=arr.filter(function(item,index,array){
        return (item%2==0);
    });
    console.log(one);       //[2, 4]
    
    //数组中所有数的2倍
    var two=arr.map(function(item,index,array){
       return (item*2);
    });
    console.log(two);       //[2, 4, 8, 10, 6, 2]

     forEach()方法

    forEach():对方法中的每一项运行给定函数。这个方法没有返回值;

    var a = ['a', 'b', 'c'];
    
    a.forEach(function(item,index,array) {
        console.log(item);
    });   
     // "a"
     // "b"
     // "c"

    归并方法

    reduce()和reduceRight()方法

       var nums=[1,2,3,4,5];
       var sum=nums.reduce(function(prev,cur,index,array){
           return prev+cur;
       });
       alert(sum);      //15     第一次 prev:1;cur:2; 第二次: prev:3(1+2)  cur:3  以此类推   
       
    /******************************************************************************************/
       
       var nums=[1,2,3,4,5];
       var sum=nums.reduceRight(function(prev,cur,index,array){
           return prev+cur;
       });
       alert(sum);      //15     第一次 prev:5;cur:4; 第二次: prev:9(5+4)  cur:3  以此类推   
    最近在维护一个前端交流群,群内有各个领域的大佬,各路妹子,程序员鼓励师等你来撩,欢迎加入,群号:249620372
  • 相关阅读:
    python函数篇
    字符编码和文件处理
    对话代码
    复习2
    [转]借闪光灯的东风 成就你完美的摄影作品
    色系
    Oracle的一些基本操作
    iebook line flash
    网站收录
    复习1
  • 原文地址:https://www.cnblogs.com/wangyue99599/p/7337786.html
Copyright © 2011-2022 走看看