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是用两种不同方法合并而成的新数组,但是它们的成员都是对原数组成员的引用,这就是浅拷贝。如果修改了引用指向的值,会同步反映到新数组。
不过,这两种方法都是浅拷贝,使用的时候需要注意。
扩展运算符提供了数组合并的新写法。
合并数组
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小欣创作整理编辑!