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. npm -v;报错 cannot find module "wrapp"

    1.node -v正常.npm-v就报错.. 说明:在官网上下载了安装了好几次.一用到npm就报这个错.园友们,我不太懂node,你们遇到这个问题怎么解决的? 2.报错 cannot find mod ...

  2. 容易被忽视的后端服务 chunked 性能问题

    容易被忽视的后端服务 chunked 性能问题 标签(空格分隔): springboot springmvc chunked 背景 spring boot 创建的默认 spring mvc 项目 集成 ...

  3. 【转】vscode: Visual Studio Code 常用快捷键

    原文链接:https://www.cnblogs.com/bindong/p/6045957.html vscode: Visual Studio Code 常用快捷键 主命令框 F1 或 Ctrl+ ...

  4. Process Doppelgänging

    Process Doppelgänging -- 新的代码注入技术,通杀windows系统的所有版本,并且能绕过绝大多数的安全软件. 介绍 今天(2017-12-07),在伦敦举行的2017年黑帽欧洲 ...

  5. python爬虫入门--beautifulsoup

    1,beautifulsoup的中文文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ 2, from bs4 import Be ...

  6. 51Nod--1085背包问题

    1085 背包问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2--Wn(Wi为整 ...

  7. Nginx动静分离实现

    Nginx动静分离实现: Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Ng ...

  8. 【下一代核心技术DevOps】:(五)微服务CI与Rancher持续集成

    1. 引言 DevOps的核心魅力是快速的持续集成交付,降低研发和实施运维之间的交互,使得传统的各种扯皮现象统统消失.最重要的是降低成本 保障产品交付可靠性. 使用Rancher作为持续集成的关键环节 ...

  9. 【JSOI2008】最大数

    https://www.luogu.org/problem/show?pid=1198 之前刚学完Splay想找题练手的时候做的,写完Splay交上去了才发现这应该是线段树裸题23333 Splay解 ...

  10. WPF 外发光效果

    WPF的滤镜效果,目前框架自带的只有BlurEffect和DropShadowEffect两种.DropShadowEffect为投影效果,只能显示黑灰颜色的效果,如果想让一个边框达到别的颜色的滤镜效 ...