ES6标准入门 - 6. 数组的扩展

时间:2021-02-20 12:09:10   收藏:0   阅读:0

扩展运算符 spread

#例子1
# ES5 的写法
function f (x, y, z) {
  ...
}
let args = [0, 1, 2]
f.apply(null, args)

# ES6 的写法
f(...args)

# 例子2
# ES5 的写法
let arr1 = [0, 1, 2]
let arr2 = [3, 4, 5]
Array.prototype.push.apply(arr1, arr2)

# ES6 的写法
arr1.push(...arr2)

Array.from

# 类数组对象本质特征只有一点: 即必须有length属性
let arrayLike = {
  ‘0‘ : ‘a‘,
  ‘1‘ : ‘b‘,
  ‘2‘ : ‘c‘,
  length : 3
}
# ES5
let arr1 = [].slice.call(arrayLike)
# ES6
let arr2 = Array.from(arrayLike)
Array.from(arrayLike, x => x * x)
# 等同于
Array.from(arrayLike).map(x => x * x)

Array.of()

Array.of( 3 )   // [3]
Array(3)   // [, , ,]
function ArrayOf () {
  return [].slice.call(arguments)
}

数组实例的方法

Array.prototype.copyWithin(target, start = , end = this.length)
[‘a‘, ‘b‘, ‘c‘].fill(7)
// [7, 7, 7]

new Array(3).fill(7)
// [7, 7, 7]
for(let index of [‘a‘, ‘b‘].keys()) { 
  console.log(index)
}
# 如果不使用for...of循环,可以手动调用遍历器对象的next方法进行遍历。
let letter = [‘a‘, ‘b‘, ‘c‘]
let entries = letter.entries()
console.log(entries.next().value) //[0. ‘a‘]
console.log(entries.next().value) //[0. ‘b‘]
console.log(entries.next().value) //[0. ‘c‘]

数组的空位

笔记内容整理来自阮一峰老师的《ES6标准入门》

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!