es6学习笔记4--数组

前端开发 作者: 2024-08-25 23:20:01
数组的扩展 Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据

数组的扩展

let arrayLike = {
    '0': 'a','1': 'b'3
};

// ES5的写法
var arr1 = [].slice.call(arrayLike);  ['a','b','c']

 ES6的写法
let arr2 = Array.from(arrayLike); Array.from方法则是还支持类似数组的对象。所谓类似数组的对象,本质特征只有一点,即必须有length属性。因此,任何有length属性的对象,都可以通过Array.from方法转为数组,而此时扩展运算符就无法转换。
Array.from({ length: 3 });
 [ undefined,undefined,undefinded ]
Array.from(arrayLike,x => x * x);
 等同于
Array.from(arrayLike).map(x => x * x);

Array.from([1,2,3],(x) => x * x)
 [1,4,9]
Array.of(3,11,8) // [3,11,8]
Array.of(3) // [3]
Array.of(3).length // 1
Array.prototype.copyWithin(target,start = 0,end = this.length)
  • target(必需):从该位置开始替换数据。
  • start(可选):从该位置开始读取数据,默认为0。如果为负值,表示倒数。
  • end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。
[1,3,5].copyWithin(0,3)
 [4,5,5]
 对于没有部署TypedArray的copyWithin方法的平台
// 需要采用下面的写法
[].copyWithin.call(new Int32Array([1,5]),4);
 Int32Array [4,5]
[1,-5,10].find((n) => n < 0 -5
[1,10,15].findIndex(function(value,index,arr) {
  return value > 9;
})  2
[NaN].indexOf(NaN)
 -1

[NaN].findIndex(y => Object.is(NaN,y))
 0
['a','c'].fill(7 [7,7,7]

new Array(3).fill(7上面代码表明,fill方法用于空数组的初始化非常方便。数组中已有的元素,会被全部抹去。

for (let index of ['a','b'].keys()) {
  console.log(index);
}
 0 1

for (let elem of ['a',1)">].values()) {
  console.log(elem);
}
 'a' 'b'

for (let [index,elem] of ['a',1)">].entries()) {
  console.log(index,elem);
}
 0 "a" 1 "b"
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_68653.html
es6学习笔记4--数组