zoukankan      html  css  js  c++  java
  • ECMAscript5 新增数组内函数

    indexOf()
    格式:数组.indexOf(item, start)
    功能:从start这个下标开始,查找item在数组中的第一次出现的下标。
    参数:item 我们要去查找的元素
    start从哪个下标开始去查找,如果不传,默认从0开始查找
    返回值: -1 没有找到
    >=0 查到到的下标


    var arr = ["蝙蝠侠", "超人", "闪电侠", "绿灯侠", "神奇女侠", "绿灯侠"];
    var res = arr.indexOf("绿灯侠", 4);
    alert(res);// 5
    
    
    var arr = ["蝙蝠侠", "超人", "闪电侠", "绿灯侠", "神奇女侠", "绿灯侠"];
    var res = indexOf(arr, "绿灯sss侠");
    alert(res);// -1  未找到


    //自定义的(自己封装函数)indexOf

    function indexOf(arr, item, start){
            var index = -1;//假设找不到
            if(!start){
                start = 0;
            }
        for(var i = start; i < arr.length; i++){
            if(arr[i] === item){
                index = i;
                break;
            }
        }
        return index;
    }        

    . forEach(function(item, index, arr ){ })

    forEach()
    格式:数组.forEach(function(item, index, arr){
    item 当前遍历的到元素
    index 当前遍历到的元素下标
    arr 当前数组本身
    })
    功能:用来遍历数组。

    for循环
    for...in
    forEach

    var arr = ["蝙蝠侠", "超人", "闪电侠", "绿灯侠", "神奇女侠", "绿灯侠"];
    arr.forEach(function(item, index, arr){
      alert(item + ", " + index);
    })

    效果:

    传统方式

    for(var i = 0; i < arr.length; i++){
      alert(arr[i]);
    }
    


    map() 遍历

    var arr = [10, 20, 30, 40, 50];
    var newArr = arr.map(function(item, index, arr){
      return item * 1.3; //newArr对应下标的结果
    })
    alert(arr);//10, 20, 30, 40, 50
    alert(newArr);//13,26, 39, 52, 65



    filter() 过滤

      var arr = [10, 20, 30, 40, 50];
    var newArr = arr.filter(function(item, index, arr){
    
      //找出原数组中大于20的所有元素,生成一个新数组
    
      return item > 20; //过滤条件
    });
    alert(arr);//10, 20, 30, 40, 50
    alert(newArr);//30, 40, 50

    /*
    some() 某些


    判断是否有符合条件的元素存在。

    【注】只要找到第一个符合条件的元素,就直接退出循环。
    返回值: true false

    var arr = [10, 20, 30, 40, 50];
    var res = arr.some(function(item, index, arr){
        // alert(item + ", " + index);
        //判断的条件。
        return item > 20;
    })
    alert(res);//30, 40, 50

    every()
    判断所有元素是否都符合条件。

    【注】找到第一个不符合条件的元素,就终止循环,返回false

    返回值:true false


    var arr = [10, 20, 30, 40, 50];
    var res = arr.every(function(item, index, arr){
        alert(item + ", " + index);
        //判断的条件。
        return item < 40;
    })
    alert(res);// false

    将上述代码中的判断条件修改为:

    return item > 5;

    结果就为真:

    alert(res);// true

    reduce() 归并

    语法:数组.reduce(function(prev, next, index, arr){ })

    prev 上一次循环 return后面表达式的结果
    next 这一次遍历的元素
    index 这一次遍历的元素的下标

    var arr = [10, 20, 30, 40, 50];
    var res = arr.reduce(function(prev, next, index, arr){
    /*
    prev 上一次循环 return后面表达式的结果
    next 这一次遍历的元素
    index 这一次遍历的元素的下标
    */
      alert(prev + ", " + next);
      return prev + next;
    })
    alert(res);//150 通过此种方法实现了求数组元素的总和


  • 相关阅读:
    一個SQL排序的問題[轉]
    行數據轉換成列數據
    asp页面转化成htm静态页面
    DataGrid 中間隔色的實現
    asp.net里导出excel表方法汇总[轉]
    C#中计算两个时间的差
    asp.net面试的题目
    页面间传输中文的乱码解决方法
    NickLee 多層菜單
    Add an onclick event in the DataGrid for any Column
  • 原文地址:https://www.cnblogs.com/taohuaya/p/9547174.html
Copyright © 2011-2022 走看看