zoukankan      html  css  js  c++  java
  • es5数组的api(了解)

    一、基础

    我下面的所有例子,都是用的是这个数组,所以先放在了前面

     var arr = [1, 5, 2, 3, 6, 7, 8, 5, 4, 1, 2, 3, 2, 2];

    1.arr.indexOf(v);

    • a.返回的是第一次出现的下标
    • b.两个参数。后面参数代表从那个下标开始查找
    • c.如果不存在,返回-1.
      eg: 数组的去重
            分析: 建立一个临时数组,用indexOf(),让传递进来的数组中的每一个元素与临时数组中的每一个元素进行比较,如果tempArr.indexOf(arr[i]) 为-1,则push到临时数组中。
            function norepeat(arr) {
                var tempArr = [];
                for (var i = 0; i < arr.length; i++) {
                    if(tempArr.indexOf(arr[i]) == -1) {   //用arr中的每一个元素与tempArr中的每一个元素进行比较,如果不相同,则放入临时的数组中。
                        tempArr.push(arr[i]);
                    }
                }
                  return tempArr;
            }
            console.log(norepeat(arr));

    2.arr.lastIndexOf(v);

    • a.从后往前找,返回的是倒着数的第一次出现的下标
    • b.接受两个参数,第二个参数,代表的是从哪个下标开始

    eg:

    检测数组中没有重复的数组项
            分析: 让indexOf从前往后找,lastIndexOf 从后往前找,如果从前往后找和从后往前找,返回的下标相同,则说明没有重复的选项
            for(var i=0;i<arr.length;i++) {
                if(arr.indexOf(arr[i])== arr.lastIndexOf(arr[i])) {
                    console.log(arr[i]);
                }
            }

    3.arr.forEach(function(value,index,arr){
      //arr 数组项
      //index 下标
      //arr 数组本身
    })
    注: forEach()没有返回值,必须要借助变量接收返回值

    eg:数组求和
    var sum = 0;
            arr.forEach(function(value,index,arr){
                // console.log(value);
                sum += value;

            })
            console.log(sum);

    4.arr.map(function(value,index,arr) {
      return value +1; //把数组项的每一项+1,然后映射到一个新数组,不影响原数组
    })
    //有返回值。

    eg:数组中的每一个值都加1

    var arr1 = [];
            arr1 = arr.map(function (value, index, arr) {
                return value + 1;
            })
            console.log(arr1);
            console.log(arr);

    5.arr.reduce(function(acc,cur,index,arr){
      //acc 累计器
      //value 数组的每一个值
      //index 下标
      // arr 数组本身

      return acc + value; //累加
      return acc * value; //累乘
      return acc / value; //累除
      return acc - value; //累减
    })

    注:每种求和求积,都要有一个初始值,好比,我们在求和的时候,sum的初始值为0,求积的时候,produce的初始值为1。总之,对于不同的计算有不同的初始值,而我们的reduce方法中,正好提供了一个累计器,在方法的底层,已经将每种计算的初始值设置好,我们只需要直接计算即可。

    6.arr.filter(function(value,index,arr) {
      return 过滤条件;
    })

    eg: 过滤小于5的数字

     res=arr.filter( function(value,index,arr) {
                return value < 5;
            })
            console.log(res);
     

    注:在map之后的m几个api中(包括map),每个api都有返回值

  • 相关阅读:
    Asp.net2.0 中自定义过滤器对Response内容进行处理 dodo
    自动化测试工具 dodo
    TestDriven.NET 2.0——单元测试的好助手(转) dodo
    JS弹出窗口的运用与技巧 dodo
    ElasticSearch 简介 规格严格
    修改PostgreSQL字段长度导致cached plan must not change result type错误 规格严格
    Linux系统更改时区(转) 规格严格
    mvn编译“Cannot find matching toolchain definitions for the following toolchain types“报错解决方法 规格严格
    ElasticSearch 集群 & 数据备份 & 优化 规格严格
    Elasticsearch黑鸟教程22:索引模板的详细介绍 规格严格
  • 原文地址:https://www.cnblogs.com/lxz123/p/11494154.html
Copyright © 2011-2022 走看看