搜索
写经验 领红包
 > 科技

es6新增数据(es6新增数据结构)

导语:ES6数据的增强

es6新增数据(es6新增数据结构)

数据的增强

复制数组

数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不是克隆一个全新的数组。

扩展运算符提供了复制数组的简便写法。

const a1 = [1, 2];// 写法一const a2 = [...a1];// 写法二const [...a2] = a1;

const arr1 = [&39;, &39;];const arr2 = [&39;];const arr3 = [&39;, &39;];​// ES5 的合并数组arr1.concat(arr2, arr3);// [ &39;, &39;, &39;, &39;, &39; ]​// ES6 的合并数组[...arr1, ...arr2, ...arr3]// [ &39;, &39;, &39;, &39;, &39; ]

[...&39;]// [ , , , , ]

//find[1, 5, 10, 15].find(function(value, index, arr) {return value > 9;}) // 10​//findIndex[1, 5, 10, 15].findIndex(function(value, index, arr) {return value > 9;}) // 2

[&39;, &39;, &39;].fill(7)// [7, 7, 7]​new Array(3).fill(7)// [7, 7, 7]​[&39;, &39;, &39;].fill(7, 1, 2)// [&39;, 7, &39;]

let arr = new Array(3).fill({name: });arr[0].name = ;arr// [{name: }, {name: }, {name: }]​let arr = new Array(3).fill([]);arr[0].push(5);arr// [[5], [5], [5]]

数组的空位数组的flat() flatMap()数组的includes()数组的entries(), keys(),values()

注意,如果填充的类型为对象,那么被赋值的是同一个内存地址的对象,而不是深拷贝对象。

fill方法还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。

fill方法用于空数组的初始化非常方便。数组中已有的元素,会被全部抹去。

fill方法使用给定值,填充一个数组。

数组的fill() 方法

数组实例的find方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。

数组实例的find() 和 findIndex() 方法

扩展运算符还可以将字符串转为真正的数组。

字符串可以转化数组const a1 = [{ foo: 1 }];const a2 = [{ bar: 2 }];​const a3 = a1.concat(a2);const a4 = [...a1, ...a2];​a3[0] === a1[0] // truea4[0] === a1[0] // true

上面代码中,a3和a4是用两种不同方法合并而成的新数组,但是它们的成员都是对原数组成员的引用,这就是浅拷贝。如果修改了引用指向的值,会同步反映到新数组。

不过,这两种方法都是浅拷贝,使用的时候需要注意。

扩展运算符提供了数组合并的新写法。

合并数组

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小欣创作整理编辑!