理解 ES6 --- 数组新方法

英文电子书点此阅读《understanding es6》

目录

array in javascript (类)

Array.of(), Array.from()
  • Array.of() 用传入的参数转化为数组,类似于直接的 literal syntax
function createArray(arrayCreator, value){
    return arrayCreator(value)
}

let items = createArray(Array.of, value)
  • Array.from 把 array-like 的数组变成真的array。
  • .of 和 .from 都用 this 来决定返回哪种 array 而不是 Symbol.species。
find() and findIndex()
arr.find(  (item,index,arr) => {

    return item >10 // 某个条件,满足时即打断返回
}, thisObj)

let numbers = [25, 30, 35, 40, 45];

console.log(numbers.find(n => n > 33));         // 35
console.log(numbers.findIndex(n => n > 33));    // 2
fill() , copyWithin()
  • 用特定的值来填充/替换数组的元素
arr.fill(valuetofill, startindex, endindex)

// 会替换 arr 的 startindex,startindex之后到endindex之前的元素,如果没有endindex则会fill startindex及之后所有的元素
// 如果传入负数 会自动变为 arr.length + negative number

let numbers = [1, 2, 3, 4];

// paste values into array starting at index 2
// copy values from array starting at index 0
// stop copying values when you hit index 1, optional
numbers.copyWithin(2, 0, 1); 

console.log(numbers.toString());    // 1,2,1,4
typed arrays
  • 由于 js 中的数字是以 64位的浮点村塾的,只是在需要时转为32位的证书。因此引用 typed array 来处理这一困境。ES6中的 typed array 可以被当做 WebGL 版本的进化。

  • ArrayBuffer 开辟一个新内存空间但没有特殊指定用途

let buffer = new ArrayBuffer(10)  // allocate 10 bytes

let buffer2 = buffer.slice(4,6)

console.log(buffer2.byteLength)

let view = new DataView(buffer)
  • 可以改变 buffer 的存储数据,但不能改变 array buffer 本身的大小。
  • 用 view 来操作 array buffer,以上述 数字类型 来 读写数据。
  • 这些基本都是内部操作。不多讲了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值