Open AymaxLi opened 6 years ago
JavaScript 中常见的类数组有:
xxx.childNodes
xxx.children
node.getElementsByXXX
function
类数组是没有 Array.prototye 上的方法的,但是很多时候我们需要使用一些常用的数组 api, 就可以用下面方法将就转化为数组 ~
Array.prototye
Array.prototype.slice
;(function sum (a, b, c) { let args = Array.prototype.slice.call(arguments) console.log(args.reduce((pre, cur) => pre + cur)) // 6 })(1, 2, 3)
Array.from
;(function sum (a, b, c) { let args = Array.from(arguments) console.log(args.reduce((pre, cur) => pre + cur)) // 6 })(1, 2, 3)
...
;(function sum (a, b, c) { let args = [...arguments] console.log(args.reduce((pre, cur) => pre + cur)) // 6 })(1, 2, 3)
Object.keys
;(function sum (a, b, c) { let args = Object.keys(arguments).map(key => arguments[key]) console.log(args.reduce((pre, cur) => pre + cur)) // 6 })(1, 2, 3)
创建长度为 100 的数组 - 掘金
Background
What is Array-Like Object
JavaScript 中常见的类数组有:
xxx.childNodes
返回的 NodeListxxx.children
和node.getElementsByXXX
返回 HTMLCollectionfunction
的 arguements 对象Situation
类数组是没有
Array.prototye
上的方法的,但是很多时候我们需要使用一些常用的数组 api, 就可以用下面方法将就转化为数组 ~Solutions
使用
Array.prototype.slice
进行转化使用 ES6 新增的
Array.from
进行转化使用 ES6 的
...
拓展运算符Reference