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面向对象编程

    访问控制 public(公开的):可以在类中.子类中.类外访问. protected(受保护的):只能在类本身及子类中访问. private(私有的):只能在声明他们的类中进行访问,私有的类成员不能被 ...

  2. JavaScript 系统知识点图库

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

  3. LKD: Chapter 5 System Call

    在Linux中,处理器所作的事可以归纳为3种情况: 1.In user-space, executing user code in a process; 2.In kernel-space, in p ...

  4. [最短路][部分转] P1073 最优贸易

    题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路 ...

  5. bundles.Add( )下无法绑定后缀为min.css的文件

    1.问题描述: 在绑定css的时候,除了后缀名为.min.css的文件,在render.style()不显示外,其他的css都正常加载, 2.解决办法: 这个是我在调试了几遍之后发现的规律,然后解决办 ...

  6. log4net使用注意事项

    1配置Log4net Log4net的配置文件有几种使用方式,这里将配置log4net的部分独立出来,即关于log4net的配置独立成文件log4net.config. 1)写入Mysql log4n ...

  7. 在Linux中使用线程

    我并不假定你会使用Linux的线程,所以在这里就简单的介绍一下.如果你之前有过多线程方面的编程经验,完全可以忽略本文的内容,因为它非常的初级. 首先说明一下,在Linux编写多线程程序需要包含头文件p ...

  8. js 实现div模块的截图并下载功能(可制作长图)

    当需要实现html页面部分模块截图并具有保存图片功能时,前台直接生成截图并下载会方便的多.多的不说,直接看代码首先我们需要引入2个js文件: <script type="text/ja ...

  9. 原生Js实现拖拽(适用于pc和移动端)

    效果: HTML和CSS部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  10. ABAP CDS Table Function介绍与示例

    Core data services(以下简称CDS)可以指两样东西,一个是HANA CDS,一个是ABAP CDS. 如我们所知,HANA CDS只支持HANA数据库,ABAP CDS理论上支持多种 ...