ES6对数组引入了几个新函数:

(1) Array.of()

  作用是将一组数值,转换为数组。

  Array.of(1,2,3,4);  //[1,2,3,4]

(2) Array.from()

  作用是把类数组的对象或者可遍历的对象变为真正数组,并返回此数组。

  let ele=document.getElementsByTagName('a');

  ele instanceof Array;   //false

  ele instanceof Object;   //true

我们使用Array.from()可以把对象转为数组:

  Array.from(ele) instanceof Array    //true

字符串处理:

  let str='hello';

  Array.from(str);    //['h','e','l','l','o']

(3) find() 函数

  作用是在数组中找到符合条件的第一个元素。其参数为一个匿名函数。

  let arr=[1,2,3,4,5,3];

  arr.find(function( value ){

    return value>2;    //3

   // return value>6;    //当没有找到符合条件的元素时返回 undefined;

  })  ;

(4) findIndex() 函数

  作用是返回符合条件的第一个元素在数组中的下标。

  let arr=[7,8,9,10];

  arr.findIndex(function( value ){

    return value>8;      //2  ,没有找到时返回-1

  })

  可以看到 findIndex()和find()的函数的用法相同,作用也基本相同,只是一个返回元素值,一个返回元素的下标。

(5) fill() 函数

  作用用指定的值填充数组。

  let arr=[1,2,3];

  arr.fill(4);   //arr=[4,4,4]  默认为全部填充;

  arr.fill(4,1,3);   //arr=[1,4,4]  第一个参数为要填充的元素,后两个参数表示填充范围的下标为 >=1 && <3 ,即下标为1,2的位置。当最后一个参数超出数组时,则填充到结尾。

(6) entries() 函数

  作用对函数的键值进行遍历,返回一个遍历器(即遍历结果),可以用for...of对其遍历。

  for(let [i,v] of ['a','b'].entries()){

    console.log(i,v);

  }

   得到数组的键值为:0,1 ,相应的值为: 'a'和'b'。

(7) keys() 函数

   作用对数组的索引键进行遍历,返回一个遍历器。

   for (let index of ['a','b'].keys()){

    console.log(index)

  }

   

(8) values() 函数

  作用只对数组的元素进行遍历,返回一个遍历器。

  for (let value of ['a','b'].values()){

    console.log(value);

  }

  //a

  //b

(9) 数组推导:用简洁的写法,直接通过现有的数组生成新的数组。

  传统的写法:

  var arr1=[1,2,3];

  var arr2=[];

  for (let i=0;i<arr1.length;i++){

    arr2.push(arr1[i]*2);

  }

  或者可以使用forEach:

  arr1.forEach(function(i){

     arr2.push(i*2);

  });

  新写法:(但是测试发现,chrome还不支持这种写法,Firefox支持。

  var arr1=[1,2,3];

  var arr2=[for(i of arr1)i*2];  //2,4,6

  还可以加上if判断:

  var arr3=[for(i of arr2) if(i>3) i];  //4,6

  

___________________________

参考公众号:web前端教程

  

ES6 — 数组Array的更多相关文章

  1. es6 --数组--Array.from() 、Array.isArray()、Array.of()、find()、findIndex()、fill()、entries() 、keys() ,values()

    将两类对象转为真正的数组 Array.from()方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Se ...

  2. ES6数组的扩展--Array.from()和Array.of()

    一. Array.from() : 将伪数组对象或可遍历对象转换为真数组 1.何为伪数组 如果一个对象的所有键名都是正整数或零,并且有length属性,那么这个对象就很像数组,语法上称为"类 ...

  3. ES6之Array数组

    定义数组 ,]; const arr = new Array(1,2,3,4); const array1 = new Array(); array1[]="test"; 给数组不 ...

  4. ES6数组扩展

    前面的话 数组是一种基础的JS对象,随着时间推进,JS中的其他部分一直在演进,而直到ES5标准才为数组对象引入一些新方法来简化使用.ES6标准继续改进数组,添加了很多新功能.本文将详细介绍ES6数组扩 ...

  5. ES6数组及数组方法

    ES6数组可以支持下面的几种写法: (1)var [a,b,c] = [1,2,3]; (2)var [a,[[b],c]] = [1,[[2],3]]; (3)let [x,,y] = [1,2,3 ...

  6. 数组的复制及ES6数组的扩展

    一.数组的复制 // alert([1,2,3]==[1,2,3]); let cc = [0,1,2]; let dd = cc; alert(dd==cc);//此时改变dd会影响cc ES5 只 ...

  7. ES6,Array.fill()函数的用法

    ES6为Array增加了fill()函数,使用制定的元素填充数组,其实就是用默认内容初始化数组. 该函数有三个参数. arr.fill(value, start, end) value:填充值. st ...

  8. es6数组的扩展

    数组扩展运算符 ...(三个点) const demoArr=[0,1,2,3,4] console.log(...demoArr) // 0 1 2 3 4 // 他把一个数组用逗号分隔了出来 // ...

  9. es6数组

    将两类对象转为真正的数组 Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和 ...

随机推荐

  1. ZOJ 3644 Kitty's Game dfs,记忆化搜索,map映射 难度:2

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 从点1出发,假设现在在i,点数为sta,则下一步的点数必然不能是sta的 ...

  2. 用PDB库调试Python程序

    Python自带的pdb库,发现用pdb来调试程序还是很方便的,当然了,什么远程调试,多线程之类,pdb是搞不定的. 用pdb调试有多种方式可选: 1. 命令行启动目标程序,加上-m参数,这样调用my ...

  3. 文件浏览器及数码相框 -2.3.2-freetype_arm-2

    显示多行文字 两行文字左边对齐 简单使用两个循环显示两行字体 根据上一行字体的宽度来进行下一行左边的计算 #include <sys/mman.h> #include <sys/ty ...

  4. linux 安装vpn

    机器环境 centos Linux  wdcp安装脚本和步骤第一步: wget http://www.huzs.net/soft/pptp_onekey/pptpd6.sh sh pptpd6.sh ...

  5. 戴文的Linux内核专题:08内核配置(5)

    转自Linux中国 Linux内核拥有许多可以配置的特性,接下来我们还有许多要配置. 下一个可以配置的特性是x86的随机数生成器(x86 architectural random number gen ...

  6. java基础之 switch

    switch 语句的格式: switch ( 整型或字符型变量 ) { case 变量可能值1 :   分支一; break; case 变量可能值2 :   分支二; break; case 变量可 ...

  7. Oracle创建用户并给用户授权查询指定表或视图的权限

    MSV31账户登录数据库进行如下操作: CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND  DEFAULT TABLESPACE "TBS_DN ...

  8. Map-Reduce的工作机制

    Mapper “Map-Reduce”的思想就是“分而治之” Mapper负责“分”,即把复杂的任务分解为若干个“简单的任务”而执行 “简单的任务”有几个意思:1.数据或计算规模相对于原任务要大大缩小 ...

  9. 2013年9月份第1周51Aspx源码发布详情

    大型B2B家具门户网源码  2013-9-6 [VS2008]功能描述: 1.门户信息管理 安全取数据即使数据库连接中断不会报错 2.稳定性 每句代码经过3次以上检查.此网站还在运营3年了,没有出过问 ...

  10. poj2193

    //Accepted 368K 532MS //线性dp //dp[i][j]表示前i位最后一个是j的排列数 //dp[i][j]=sum(dp[i-1][h]) h*2<=j #include ...