脚本宝典收集整理的这篇文章主要介绍了Array的扩展,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
1. Array.From( likeArrObj, [valueHandleFn], [thisObj] )
Array.from()用于将以下两类对象转化为真正的数组:
- 类似数组的对象(array-like object,即本身 具有length属性的对象 )
- 可遍历对象( 原型链上具有[Symbol.ITerator]方法的对象 ,即具有iterator接口的iterable对象)
它接受三个参数:
- likeArrObj: 需要被转化的对象
- [valueHandleFn]: 用于处理该对象中每个值的一个 遍历函数 ,类似于map(),该参数可选。
- [thisObj]: 用于 绑定[valueHandleFn]中的this ,也就是只有使用了[valueHandleFn],它才会有作用
它返回的是将该对象转化成功后,得到的数组。
1.1 代码示例
let likeArrObj = {
'0': 0,
'1': 1,
'2': 2,
length: 3,
}
// ES5 的写法 (两种)
VAR arr_es5_01 = Array.PRototyPE.slice.call( likeArrObj )
var arr_es5_02 = [].prototypr.slice.call( likeArrObj )
// ES6 的写法 (两种)
let arr_es6_01 = Array.from( likeArrObj )
let arr_es6_02 = [...likeArrObj]
1.1.1 对代码的说明:
浅复制 是说只拷贝数组元素的内容,而不管该内容是不是指向另一个值。
thisObj 是需要绑定的对象
arg1, arg2, ..., argn 是该函数调用的参数
Function.prototype.apply( thisObj, argArr ) 与该方法功能一致,只是在参数传递上,使用的是一个数组形式
- [...likeArrObj]中的 ... 是扩展运算符,它通过调用likeArrObj的 [Symbol.iterator]方法 来将其打散成一个个独立的量,最后再用 [] 来将其合成一个新的数组,所以使用该写法时,一定需要确保likeArrObj具有 [Symbol.iterator]方法。
1.2 应用场景
它的常见应用场景:
转化为真正的数组之后,就可以使用 Array.prototype.foreach() 方法来操作该对象了。
以上是脚本宝典为你收集整理的Array的扩展全部内容,希望文章能够帮你解决Array的扩展所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。