ES入门——数组的扩展
1、Array.from()
该方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象,包括ES6新增的数据结构Set和Map。下面是一个类似数组的对象,Array.from将它转为真正的数组。
let arrayLike = {
"0":"a",
"1":"b",
"2":"c",
length:3
};
//ES5的写法
var arr1 = [].slice.call(arrayLike);
console.log(arr1); //["a","b","c"]
//ES6的写法
let arr2 = Array.from(arrayLike);
console.log(arr2); //["a","b","c"]
2、Array.of()
该方法用于将一组值,转换为数组。这个方法的主要目的是弥补数组构造函数Array()的不足。因为参数个数不同,会导致Array()的行为有差异。
console.log(Array.of(3,11,8)); //[3,11,8]
console.log(Array.of(3)); //[3]
console.log(Array.of(3).length); // console.log(Array()); //[]
console.log(Array(3)); //[]
console.log(Array(3,11,8)); //[3,11,8]
Array.of基本上可以用来替代Array()或new Array(),并且不存在由于参数不同而导致的重载,它的行为非常统一。
3、数组实例的copyWithin()
数组实例的copyWithin方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组,也就是说使用这个方法,会修改当前数组。
4、数组实例的find()和findIndex()
数组实例的find方法,用于找出第一个符合条件的数组成员,它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员,如果没有符合条件的成员,则返回undefined。
数组实例的findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,唯一差别就是如果所有成员都不符合条件,则返回-1,而不是undefined。
5、数组实例的fill()
fill方法使用给定值,填充一个数组。用于空数组的初始化非常方便,数组中已有的元素,会被全部抹去。fill方法还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。
6、数组实例的entries(),keys()和values()
ES6提供三个新的方法,entries(),keys()和values()用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一区别就是keys()是对键名的遍历、values是对键值的遍历,entries()是对键值对的遍历
for(let index of ['a','b'].keys()){
console.log(index); //0 1
}
for(let elem of ['a','b'].values()){
console.log(elem); //'a' 'b'(不过经测试,在Chrome浏览器下报错)
}
for(let [inde,ele] of ['a','b'].entries()){
console.log(inde,ele); //0 "a" 1 "b"
}
7、数组实例的includes()
该方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似,该方法属于ES7,但是Babel转码器已经支持。没有该方法之前,我们通常使用数组的indexOf方法,检查是否包含某个值,indexOf方法有两个缺点,一是不够语义化,它的含义是找到参数值的第一个出现的位置,所以要去比较是否不等于-1,表达起来不够直观。二是它内部使用严格相当运算符(===)进行判断,这会导致对NaN的误判。
ES入门——数组的扩展的更多相关文章
- ES 6 : 数组的扩展
1.Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象和可遍历(iterable)对象. 下面是一个类似数组的对象,Array.from将它转为真正的数组. ...
- Es6学习笔记(7)----数组的扩展
参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ 数组的扩展 1.扩展运算符:可以将数组转化成逗号隔离的单个参数...[1,2,3] //控制台运 ...
- ES入门三部曲:索引操作,映射操作,文档操作
ES入门三部曲:索引操作,映射操作,文档操作 一.索引操作 1.创建索引库 #语法 PUT /索引名称 { "settings": { "属性名": " ...
- 从js的repeat方法谈js字符串与数组的扩展方法
js将字符串重复N次的repeat方法的8个版本 /* *@desc: 将一个字符串重复自身N次 */ //版本1:利用空数组的join方法 function repeat(target, n) { ...
- ES 入门之一 安装ElasticSearcha
安装ElasticSearcha 学习ES也有快一个月了,但是学习的时候一直没有总结.以前没有总结是因为感觉不会的很多,现在对ES有一点了解了.索性就从头从安装到使用ES做一个详细的总结,也分享给其他 ...
- 数组的复制及ES6数组的扩展
一.数组的复制 // alert([1,2,3]==[1,2,3]); let cc = [0,1,2]; let dd = cc; alert(dd==cc);//此时改变dd会影响cc ES5 只 ...
- 前端笔记之ES678&Webpack&Babel(中)对象|字符串|数组的扩展&函数新特性&类
一.对象的扩展 1.1对象属性名表达式 ES6可以在JSON中使用[]包裹一个key的名字.此时这个key将用表达式作为属性名(被当做变量求值),这个key值必须是字符串. var a = 'name ...
- es6数组的扩展
数组扩展运算符 ...(三个点) const demoArr=[0,1,2,3,4] console.log(...demoArr) // 0 1 2 3 4 // 他把一个数组用逗号分隔了出来 // ...
- ES 入门记录之 match和term查询的区别
ElasticSearch 系列文章 1 ES 入门之一 安装ElasticSearcha 2 ES 记录之如何创建一个索引映射 3 ElasticSearch 学习记录之Text keyword 两 ...
随机推荐
- 神奇的树上启发式合并 (dsu on tree)
参考资料 https://www.cnblogs.com/zhoushuyu/p/9069164.html https://www.cnblogs.com/candy99/p/dsuontree.ht ...
- Vue 1-- ES6 快速入门、vue的基本语法、vue应用示例,vue基础语法
一.ES6快速入门 let和const let ES6新增了let命令,用于声明变量.其用法类似var,但是声明的变量只在let命令所在的代码块内有效. { let x = 10; var y = 2 ...
- PHP打开错误提示和关闭错误提示的方法
找到php的配置文件,也就是php.ini 在文件中查找 ‘display_errors’ 查找到 display_errors = Off 或者 display_errors = On, Off ...
- 剑指offer——面试题16:数值的整数次方
// 面试题16:数值的整数次方 // 题目:实现函数double Power(double base, int exponent),求base的exponent // 次方.不得使用库函数,同时不需 ...
- PIE SDK矢量点生成等值线、面
1.算法功能简介 等值线图能直观地展示数据的变化趋势,是众多领域展示成果的重要图建之一,被广泛应用于石油勘探.矿物开采.气象预报等众多领域.等值线的绘制是指从大量采样数据中提取出具有相同值的点的信息, ...
- 用hashmap实现redis有什么问题
1.容量问题 hashmap是有最大容量的 2.时效问题 redis可以持久化,也可以定时时间 hashmap不可以持久化 3.线程并发问题 hashmap不是线程安全的(并且:多线程同时调用hash ...
- SpringCloud---消息驱动的微服务---Spring Cloud Stream
1.概述 1.1 Spring Cloud Stream:用来 为微服务应用 构建 消息驱动能力的框架: 可基于SpringBoot来创建独立.可用于生产的Spring应用程序: 使用Sp ...
- 与native交互时会出现的问题
1.jsbridge: 可以用jsbridge与native交互,这属于第三方库,前端后端都需要加jsbridge 2.可以直接调用原生的方法,ios: window.webkit.message ...
- linux(ubuntu-16.1) 下安装 odoo10 新版
1.虚拟机(VMware)中安装 ubuntu-16.1(网络适配器选择桥接模式). 安装成功后,运行 ubuntu 提示 "CPU已被客户机操作系统禁用" 时,需要修改配置文件解 ...
- (转)MySQL 日志组提交
原文:https://jin-yang.github.io/post/mysql-group-commit.html 组提交 (group commit) 是为了优化写日志时的刷磁盘问题,从最初只支持 ...