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 两 ...
随机推荐
- next_permutation(全排列)
废话不多说,直接上代码,谁测试,谁知道 C++: #include<bits/stdc++.h> using namespace std; typedef long long ll; in ...
- mongo嵌套查询
db.getCollection('TradeBookingRepresentation').find({uitid:'168282:20190214010009224', tradeVersion: ...
- Python用于http/https接口自动化
本接口自动化框架主要用到的类: 1. unittest:组织测试用例 2. requests:http/https请求 3. HTMLTestRunner:生成测试报告 4. Dingtalkchat ...
- 使用 Dotfuscator 对代码进行混淆
Dotfuscator 简介 作为一种高级语言,c# 类库很容易被 .NET Reflector 这样的工具反编译.攻击者很容易从代码中找到数据库连接方式,加解密方法等重要信息.使用 dnspy 这样 ...
- C语言中结构体定义
struct test { int a; }; /* 定义一个结构体,名字是test,这样就可以使用struct test 来定义变量.比如 struct test a; */ typedef str ...
- JQ 输入框控制输入 - 键盘上事件
<li style="width: 480px">限购数量 <input type="number" name="limitNum ...
- (转)linux基本变量学习:位置变量$0 、$1 shift轮替、本地变量、环境变量、特殊变量
原文:http://blog.51cto.com/woyaoxuelinux/1863045 shell: 弱类型编程语言 强:变量在使用前,必须事先声明,甚至还需要初始化: 弱:变量用时声明,甚至不 ...
- git 学习之什么是版本库
什么是版本库? 我们一般把版本库也叫仓库(repository),其实我们可以简单的把它看成一个目录,只不过目录里面的文件都会由 Git 进行管理,当我们对文件进行修改.删除.Git 都可以对其进行跟 ...
- Unity5.x在mac下的破解
工具下载 http://www.ceeger.com/forum/read.php?tid=23396&uid=24111 破解unity5.x版本亲测有效 但是他的说明不详细 下载后,里面有 ...
- C#操作Redis String字符串
/// <summary> /// Redis String 操作 /// </summary> public static void Redis_String() { Red ...