ES5中数组新增API:

1. indexOf

作用:检测当前数据是否在数组中存在;

特点:如果存在返回相对应的下标,如果不存在则返回-1;

如果数组中存在多个需要判断的这个数据,则返回最近的这个数据的下标;

可以传递两个参数,第二个参数指定查询的起始位置;

示例:

var arr = [10,20,30,40,50,30];
                 var index1= arr.indexOf(30);  
                 var index2 = arr.indexOf(80);
                 var index3 = arr.indexOf(30,3);
                console.log(index1);  //结果为2
                console.log(index2);  //结果为-1
                console.log(index3);  //结果为5

2. lastIndexOf

作用:检测当前数据是否在数组中存在;

特点:如果存在返回相对应的下标,如果不存在则返回-1;

如果数组中存在多个需要判断的这个数据,则返回最后的这个数据的下标(也就是说它的查找方式是从右往左);

可以传递两个参数,第二个参数是指定查询的起始位置,然后从起始位置往左找;

示例:

var arr = [10,20,30,40,50,30];
                 var index1= arr.lastIndexOf(30);  
                 var index2 = arr.indexOf(80);
                 var index3= arr.lastIndexOf(30,5);  
                 console.log(index1);  //结果为5
                 console.log(index2);  //结果为-1
                 console.log(index3);  //结果为5

3. map

作用:需要对数组中的数据做一些同一类型的操作时,可以用到map;

特点:不会改变原数组,会有一个返回值, 返回值是一个新的数组;

map中除了有一个回调以外,还有第二个参数就是用来改变this指向的,此参数选用。
                            回调函数中的3个参数:
                                 item:数组中的数据
                                 index:数组中数据的下标
                                 array:当前遍历的数组

示例:

var arr = [10,20,30,40,50];
    
                var newArr = arr.map(function(item,index,array){
                          console.log(item,index,array);//自己可以打印着看看
                          return item*=1.3;
                  })
    
                 console.log(arr);   //   [10,20,30,40,50]
                 console.log(newArr);  //  [ 13, 26, 39, 52, 65 ]

4.   forEach

作用:遍历;

特点:没有返回值,不会改变原数组;

forEach中除了有一个回调以外,还有第二个参数 就是用来改变this指向的,此参数选用。

回调函数中的3个参数:
                                  item:数组中的数据
                                  index:数组中数据的下标
                                  array:当前遍历的数组

示例:

var arr = [10,20,30,40,50];
               var newArr  = []
               arr.forEach(function(item,index,array){
                     newArr.push(item*=1.3);
                     console.log(this);//当前this指向document,如果不改变this指向,则指向window
                  },document)

console.log(arr);// [10,20,30,40,50]
            console.log(newArr);//[ 13, 26, 39, 52, 65 ]

注:forEach和map是不能被终止的  也就是说return  和break根本不会终止它们的循环

5.  filter

作用:通过某种条件对数据进行过滤筛选;

特点:返回一个匹配过滤条件的新数组,不会改变原数组;

filter中除了有一个回调以外,还有第二个参数 就是用来改变this指向的,此参数选用。

回调函数中的3个参数:
                                 item:数组中的数据
                                 index:数组中数据的下标
                                 array:当前遍历的数组

示例:
                       var arr = [10,20,30,40,50];

var newArr = arr.filter(function(item,index,array){
                         console.log(this);//当前this指向document,如果不改变this指向,则指向window
                       return item>30;
                    },document)
             
               
            console.log(arr);// [10,20,30,40,50]
            console.log(newArr);//[ 40,50 ]
   
  6.  reduce

作用: 累积器;

特点:返回一个匹配过滤条件的新数组,不会改变原数组;
                   
                  回调函数中的4个参数:
                                init:初始值,值为reduce函数的第二个参数
                                 current: 为数组中的当前值, 第一次为数组中下标为0的这个值 第二次为下标1的值  .....   
                                 index:数组中数据的下标
                                 array:当前遍历的数组

示例:
                       var arr = [10,20,30,40,50];
                       var sum =  arr.reduce(function(init,current){
                         return current-init;
                        },0)
                      console.log(sum);//30 ;sum的计算过程: sum=50-(40-(30-(20-(10-0))));

7.reduceRight
     作用同reduce,唯一的不同是,reduceRight 是从右至左遍历数组的元素。

8.some
      作用: 测试数组中是否有某元素通过 callback 函数测试;

特点:如果 callback 函数返回值为 true 则表示通过测试(有一个通过测试,则为真);

回调函数中的3个参数:
                                v:数组中的数据
                                i:数组中数据的下标
                                arr:当前遍历的数组

let arr=[1,3,6,4,2]
            let someRes = arr.some((v, i, arr) => {
                    return v > 5
                 })
           console.log(someRes) ;//  true

9. every
      作用: 测试数组中是否全部元素通过 callback 函数测试;

特点:如果 callback 函数返回值为 true 则表示通过测试(全部通过测试,则为真);

回调函数中的3个参数:
                                v:数组中的数据
                                i:数组中数据的下标
                                arr:当前遍历的数组

let arr=[1,3,6,4,2]
            let everyRes = arr.every((v, i, arr) => {
                    return v > 5
                 })
           console.log(everyRes) ;// false

数组API(2)的更多相关文章

  1. javascript_core_10之继承与数组API

    1.现有两对象间的继承:Object.setPrototypeOf(child,father): 2.基于现有父对象创建子对象:var child=Object.create(father,{新属性} ...

  2. javascript_core_04之数组API

    1.数组API——splice: ①删除:var deletes=arr.splice(starti,n):删除starti位置开始的n个,返回删除元素组成的临时数组: ②插入:arr.splice( ...

  3. 数组Array、数组API

    1.数组:批量管理多个数据的存储空间. 数组的作用:现实中,批量管理多个数据都是集中分组存放,良好的数据结构,可极大提高程序的执行效率! 优点:方便查找 2.创建数组:(4种方式) (1)var 变量 ...

  4. JavaScript中对数组和数组API的认识

    JavaScript中对数组和数组API的认识 一.数组概念: 数组是JavaScript中的一类特殊的对象,用一对中括号“[]”表示,用来在单个的变量中存储多个值.在数组中,每个值都有一个对应的不重 ...

  5. 数组API汇总

    数组API汇总   Javascript数组API: 1.将数组转化为字符串:2种: 1.var str=String(str); 将数组转化为字符串并分隔每个元素; var arr=[1,2,3]; ...

  6. 数组Api .map()的使用

    之前并没有过多的使用过这个Api,在此记录下对其的理解,方便以后多多使用. 首先是对map的说明: var mappedArray = array.map(callback[, thisObject] ...

  7. Javascript之高级数组API的使用实例

    JS代码中我们可以根据需求新建新的对象解决问题的同时,也有一些常用的内置对象供我们使用,我们称之为API,本篇文章只是对数组部分进行了练习. 例一:伪数组,不能修改长短的数组(所以没办法清零),可以修 ...

  8. js 数组api

    Javascript Array API   JS数组对象提供了很多API方法,要用到的朋友可以查阅哈,如有错误欢迎指正. /** * Created by Administrator on 2017 ...

  9. js手写数组Api--模拟实现常见数组Api

    数组的API经常用,但是api的内部实现还没研究过,于是就研究学习了下. 原文地址: https://www.cnblogs.com/yalong/p/11606865.html 数组的API的具体使 ...

随机推荐

  1. Git_学习_01_ 常用 Git 命令清单

    我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下 ...

  2. Oracle 12c 多租户在 CDB 中 Plug A PDB,Unplugging A PDB

    Oracle 数据库 12 c 中介绍了多租户选项允许单个容器数据库 (CDB) 来承载多个单独的可插拔数据库 (PDB).本文简单的演示了如何在 CDB 中 Plug A PDB,Unpluggin ...

  3. BZOJ1636&&1699:[USACO2007JAN]Balanced Lineup

    浅谈\(RMQ\):https://www.cnblogs.com/AKMer/p/10128219.html 题目传送门:https://lydsy.com/JudgeOnline/problem. ...

  4. UILabel常见用法

    //创建一个UILabel UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(50 , 100 , 200 , 560)]; // ...

  5. Logstash 2.0.0 beta2 发布,开源日志管理

    Logstash 是一个应用程序日志.事件的传输.处理.管理和搜索的平台.你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计. Logstash 现在是 ElasticSea ...

  6. Poj1062 昂贵的聘礼 (dijkstra算法)

    一.Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长 ...

  7. Python:生成器函数

    生成器函数:包含yield语句的函数: 生成器对象:生成器对象和迭代器对象行为相似,都支持可迭代接口:__next__(),若想执行生成器函数内部语句,则需要迭代协议’ A.生成器函数被调用时,并不会 ...

  8. 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout

    目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...

  9. unittest ,ddt数据驱动,读取文件中数据,多个参数时的处理

    1. test.yaml中的数据 这里的属性是list 2.创建用例 3,在yaml中创建数据,创建list数据,list中再创建dict数据,这样就可以读取dict中的多个参数的数据了

  10. Queue——C#浅谈

    1.Queue定义 System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除. 2.优点 1.能对集合进行顺序处理(先进先 ...