zoukankan      html  css  js  c++  java
  • ES5新增数组的方法

    ES5新增数组的方法

    ES5新增数组常见方法(indexOf/forEach/map/filter/some/every)

    • .indexOf( data , start)
        检测数组中是否存在指定数据,存在返回索引,不存在返回-1,start表示从第几位开始查询。
    demo:
        var arr = ["a","45",67,true,"hello",67,45,25,13,89];
        
        console.log(arr.indexOf(67));           // 2
        console.log(arr.indexOf("world"));      // -1
        console.log(arr.indexOf("a"));          // 0
        console.log(arr.indexOf(67,3));         // 5
        console.log(arr.indexOf(67,6));         // -1
    • .forEach( function(val,idx,self){ } ); 循环,遍历数组
        数组的专属遍历方法,1个参数:回调函数,在回调函数身上又有三个参数
    var f = arr.forEach(function(val,idx,self){
        // console.log(val);
        // console.log(idx);
    })
    console.log(f);         // undefined
    • .map( function(val,idx,self){ } );
        不是专门用来遍历的,但是可以实现遍历,格式同forEach
        map的主要功能:可以用来获取数组中的数据,操作,并返回成新数组;原数组不变
    demo:
        "函数中的三个参数分别代表,该项的值,该项下标,数组本身"
        var m = arr.map(function(val,idx,self){
            console.log(val,idx,self)
            return val + "ly";
        })
        console.log(arr);       // Array(10) [ "a", "45", 67, true, "hello", 67, 45, 25, 13, 89 ]
        console.log(m);         // Array(10) [ "aly", "45ly", "67ly", "truely", "helloly", "67ly", "45ly", "25ly", "13ly", "89ly" ]
    • .filter( function(val,idx,self){ } )
        不是专门用来遍历的,但是可以实现遍历,格式同forEach
        主要功能:过滤,回调函数每次返回值为true时,会将这个遍历到的值放在新的数组中,在filter结束后,返回这个数组;如果为false,跳过;原数组保持不变
    demo:
      var
    f = arr.filter(function(val,idx,self){   console.log(val,idx,self)   return typeof val === "string";   })   console.log(f); // Array(3) [ "a", "45", "hello" ]
    • .some( function(val,idx,self){ } ) (课外补充)
        some意指“某些”,指是否“某些项”合乎条件。与下面的every算是好基友
        some存在一个值让callback返回true就可以了
    demo1:
        // 效果是我们判定这个数组是否有一个负数 使用.some
        var arr = [1,58,125,-12,458,12];
        var Boon = arr.some(function(e,i,arr){
          return e < 0;
        })
        console.log(Boon)      // ture
        
        var scores = [5, 8, 3, 10];
        var current = 7;
        
    demo2:
        function fn(score) {
            return score > current;
        }
        
        if (scores.some(fn)) {
            console.log("通过了!");        // "通过了!
        }
    • .every( function(val,idx,self){ } )
        所有函数的每个回调函数返回true的时候才会返回true,遇到一个false的时候终止执行,返回false
    demo1:
        // 效果是我们判定这个数组全是正数 使用.every
        var arr = [1,58,125,-12,458,12];
        var Boon = arr.every(function(e,i,arr){
          return e > 0;
        })
        console.log(Boon)      //false
    
    demo2:
        var scores = [5, 8, 3, 10];
        var current = 7;
        function fn(score) {
            return score > current;
        }
        if (scores.every(fn)) {
            console.log("通过了!");
        }else{
            console.log("没通过");          // "没通过"
        } 
  • 相关阅读:
    prototype.js超强的javascript类库
    MySQL Server Architecture
    Know more about RBA redo block address
    MySQL无处不在
    利用Oracle Enterprise Manager Cloud Control 12c创建DataGuard Standby
    LAMP Stack
    9i中DG remote archive可能导致Primary Database挂起
    Oracle数据库升级与补丁
    Oracle为何会发生归档日志archivelog大小远小于联机重做日志online redo log size的情况?
    Oracle Ksplice如何工作?How does Ksplice work?
  • 原文地址:https://www.cnblogs.com/wufenfen/p/11768589.html
Copyright © 2011-2022 走看看