ES6数组可以支持下面的几种写法:

(1)var [a,b,c] = [1,2,3];
(2)var [a,[[b],c]] = [1,[[2],3]];
(3)let [x,,y] = [1,2,3]; //x=1 y=3
(4)var [x,...y] = [1,2,3,4]; //x=1 y=[2,3,4]

  当然我认为代码必须要有易读性,所以请谨慎选择写法。

  下面就要说数组的方法
   转换成数组的方法Array.from()这个方法是把类似数组的对象或者是可遍历的对象转化为数组(包括了ES6里面的Set和Map方法)如果参数是一个数组则会返回一个一模一样的数组,这个方法如果传入的是一个字符串那么他会把传入的字符串拆开并返回。
  代码示例
var shuzu = {
'0' : "h",
'1' : "e",
'2' : "l",
'3' : "l",
'4' : "o",
length : 3,//要输出的长度
};
console.log(Array.from(shuzu)); //[ 'h', 'e', 'l' ]
console.log(Array.from(shuzu).length); //
console.log(Array.from('apple')); //[ 'a', 'p', 'p', 'l', 'e' ]
console.log(Array.from('apple').length); //

  如果是将一堆值转化为数组使用Array.of()

console.log(Array.of(1,2,3));//[ 1, 2, 3 ]
console.log(Array.of(1,2,3).length);//

  如果是复制当前数组某值到当前数组的某个位置使用copyWithin()会返回一个新的数组,接受三个参数依次为从该位置开始替换数据、从该位置开始读取数据和到该位置前停止读取数据。

console.log([0,1,2,3,4,5,6].copyWithin(0));    //[ 0, 1, 2, 3, 4, 5, 6 ]
console.log([0,1,2,3,4,5,6].copyWithin(0,2)); //[ 2, 3, 4, 5, 6, 5, 6 ]
//舍弃第二位以前的后面的补位并把后位用最后的两位补齐
console.log([0,1,2,3,4,5,6].copyWithin(0,2,3)); //[ 2, 1, 2, 3, 4, 5, 6 ]
//把原第三位补至原第零位其他位不变
console.log([0,1,2,3,4,5,6].copyWithin(0,2,4)); //[ 2, 3, 2, 3, 4, 5, 6 ]
//把原第二位第三位补至原第零位和第一位
console.log([0,1,2,3,4,5,6].copyWithin(0,2,5)); //[ 2, 3, 4, 3, 4, 5, 6 ]
//把原第二三四位补至原第零一二位

  判断该数组是否含有某值使用find()方法,这个方法有三个参数value(寻找的值)、index(从哪开始)、arr(原数组),这个方法用于找出第一个符合条件的数组成员并返回该值

console.log([1,2,3,4].find((n) => n<4));    //
console.log([1,2,3,4].find(function (value,index,arr) {return value<4 ;})); //

  如果要把数组内部全部替换并返回一个新的数组使用fill()方法,这个方法接受三个参数value(要填充的值)、start(从哪里填充)、end(填充到哪)。

console.log([1,2,3].fill('a'));    //[ 'a', 'a', 'a' ]
console.log([0,1,2].fill('a',1,3)); //[ 0, 'a', 'a' ]
//如果结束位大于等于数组的长度那么会从开始为到结束位都填充上填充的值 console.log([0,1,2,3,4].fill('a',1,3)); //[ 0, 'a', 'a', 3, 4 ]
/*也可以这么写*/
console.log(new Array(3).fill('a')); //[ 'a', 'a', 'a' ]

  如果你要遍历数组那么有三个方法可供选择entries()、keys()、values(),都返回一个遍历器对象,可以用for...of循环遍历,他三个不同的是keys()对键名的遍历,values()是对值的遍历,entries()是对键值对的遍历。

for(let index of [ 'test' , 'ceshi' , 'apple' ].keys()){ console.log(index); } // 0    1    2
for(let [index,values] of [ 'test' , 'ceshi' , 'apple' ].entries()){ console.log(index,values); }//0 'test' 1 'ceshi' 2 'apple'
for(let values of [ 'test' , 'ceshi' , 'apple' ].values()){ console.log(values); } //报错!!!也不知道为什么我的不支持这个函数,如果有发现这个问题怎么解决请在后面留言 Thanks?(?ω?)?

  如果查看数组里面是否含有某值使用includes()他会返回一个布尔值,有两个参数values(值)、start(从第几个开始)。

console.log([1,2,3].includes(1));//true
console.log([1,2,3].includes(1,2));//false

  数组推导允许直接通过现有的数组生成新的数组,有点像vue里面的 x of y

var nums = [1,2,3,4,5,6];
for (num of nums) if(num>2){ console.log(num); } ; //3 4 5 6

ES6数组及数组方法的更多相关文章

  1. ES6中数组的新方法

    数组的扩展 1.1扩展运算符 1.1.1:... 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. <body> < ...

  2. 漫谈数组去重复方法(亮点是ES6的新API)

    方法1: 利用遍历的思想来进行. <!DOCTYPE html><html lang="en"><head> <meta charset= ...

  3. JavaScript(ES6之前)数组方法总结

    一.数组的创建 1.使用 Array 构造函数 var arr1 = new Array(); // 创建一个空数组 var arr2 = new Array(20); // 创建一个包含20项的数组 ...

  4. ES6数组对象新增方法

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

  5. 前端面试之ES6新增了数组中的的哪些方法?!

    前端面试之ES6新增了数组中的的哪些方法?! 我们先来看看数组中以前有哪些常用的方法吧! 1 新增的方法! 1 forEach() 迭代遍历数组 回调函数中的三个参数 value: 数组中的每一个元素 ...

  6. ES6中的数组方法扩展

    上一篇文章小编简单介绍了在ES6中,一些常用的方法和一些简单的应用,在这篇文章中,小编将针对ES6中数组常用方法进行扩展,相信经过这篇文章之后,每一位小伙伴下班时间会有所提前,就算从原来的996变成9 ...

  7. ES6中数组新增的方法-超级好用

    Array.find((item,indexArr,arr)=>{}) 掌握 找出第一个符合条件的数组成员. 它的参数是一个回调函数,对所有数组成员依次执行该回调函数. 直到找出第一个返回值为t ...

  8. ES6新增的数组方法

    ES6新增:(IE9级以上支持) 1.forEach():遍历数组,无返回值,不改变原数组. 2.map():遍历数组,返回一个新数组,不改变原数组. 3.filter():过滤掉数组中不满足条件的值 ...

  9. ES6扩展——数组的新方法(Array.from、Array.of、Array.fill、Array.includes、keys values entries 、find)

    1.Array.from(objec,回调函数)将一个ArrayLike对象或者Iterable对象(类数组对象)转换成一个数组 1)该类数组对象必须具有length属性,用于指定数组的长度.如果没有 ...

随机推荐

  1. 使用PHP文件锁写一个多个请求同时并发写入一个文件,要求不脏读、数据不丢失

    使用PHP文件锁写一个多个请求同时并发写入一个文件,要求不脏读.数据不丢失. //并发文件操作 function filehandle($filename,$data){ $start = 0; $e ...

  2. JavaScript 系统知识点图库

    JavaScript 是世界上最流行的,轻量级的编程语言. 这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备: JavaScript 被数百万计的网 ...

  3. flask 之定时任务开发

    最近开发我的接口测试平台 ,但是遇到了一个需求,需要开发定时任务,于是百度搜索,找到了这么一个叫 pFlask-APScheduler然后开始了我的第一次的学习,于是乎, 需求是这么的: 1.添加定时 ...

  4. 件测试博客日记Day03-11.17日 —— 赵天宇 —— 禅道的使用和配置详细版

    说在维基百科先查找关于禅道相关知识,发现有关于禅道这个项目管理软件的详细介绍,然后将相关的介绍进行整理写入文档,在禅道的介绍中也有下载地址并进行安装. (1)软件的基本情况 a.中文名称:禅道项目管理 ...

  5. java如何声明一个数组用来存储随机生成的字母并且保证不重复

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Monaco } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px ...

  6. Java数据结构和算法(五)——队列

    前面一篇博客我们讲解了并不像数组一样完全作为存储数据功能,而是作为构思算法的辅助工具的数据结构——栈,本篇博客我们介绍另外一个这样的工具——队列.栈是后进先出,而队列刚好相反,是先进先出. 1.队列的 ...

  7. Android开发之漫漫长途 番外篇——自定义View的各种姿势2

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  8. git的CentOS服务端安装和windows客户端的使用

    git的CentOS服务端安装和windows客户端的使用 此教程以 搬瓦工vps CentOS 6 x64 的系统为环境,搭建 git 服务端.windows 7 系统为客户端. git客户端 在W ...

  9. HDU1284--完全背包

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  10. saltstack_grains

    1. [root@kylin1 grains]# cd /srv/salt/_grains/ [root@kylin1 _grains]# ls cpu.py [root@kylin1 _grains ...