美文网首页
arguments 类数组 解析, 如何转化成数组?

arguments 类数组 解析, 如何转化成数组?

作者: lovelydong | 来源:发表于2020-04-07 11:17 被阅读0次

因为argument是一个对象,只不过它的属性从0开始排,依次为0,1,2...最后还有callee和length属性。我们也把这样的对象称为类数组。
常见的类数组还有:

  1. 用getElementByTagName/ClassName/Name()获得的HTMLCollection
  2. 用querySlector获得的nodeList

类数组不能用数组的方法,必要时需要我们将它们转换成数组,有哪些方法呢?

最原始的方法就是再创建一个数组,用for循环把类数组的每个属性值放在里面
1. Array.prototype.slice.call()
function sum(a, b) {
  let args = Array.prototype.slice.call(arguments);
  console.log(args.reduce((sum, cur) => sum + cur));//args可以调用数组原生的方法啦
}
sum(1, 2);//3
2. Array.from()
function sum(a, b) {
  let args = Array.from(arguments);
  console.log(args.reduce((sum, cur) => sum + cur));//args可以调用数组原生的方法啦
}
sum(1, 2);//3
3. ES6展开运算符
function sum(a, b) {
  let args = [...arguments];
  console.log(args.reduce((sum, cur) => sum + cur));//args可以调用数组原生的方法啦
}
sum(1, 2);//3
4. 利用concat+apply
function sum(a, b) {
  let args = Array.prototype.concat.apply([], arguments);//apply方法会把第二个参数展开
  console.log(args.reduce((sum, cur) => sum + cur));//args可以调用数组原生的方法啦
}
sum(1, 2);//3

相关文章

  • arguments 类数组 解析, 如何转化成数组?

    因为argument是一个对象,只不过它的属性从0开始排,依次为0,1,2...最后还有callee和length...

  • json : 类数组转数组+ajax请求数据

    类数组转数组 类数组:arguments: 用来接收实参的HTMLcollection: 获取元素集合 类数组转数...

  • JavaScript 类数组转化为数组

    类数组有arguments,NodeList,HTMLCollection还有NamedNodeMap 类数组 1...

  • JS 数组 和 类数组

    类数组是一个普通对象,而真实的数组是 Array 类型 arguments 也是类数组 类数组转换为数组

  • vue学习

    arguments是实参的集合 arguments是类数组,即有数组的形式没有数组的功能 Object.assig...

  • arguments小笔记

    为什么说arguments是伪(类)数组?答:因为arguments它不是数组,却用起来像数组,有length属性...

  • 类数组、arguments

    arguments为一个类数组的对象;类数组对象即为:有length属性和索引的对象。一、类数组===》数组var...

  • Javascript中的arguments

    arguments类数组对象: 参考资料1.arguments类数组对象是一种特殊的对象,它有数组的一部分属性(比...

  • [].shift.call(arguments)

    [].shift.call(arguments) 把类数组对象转为数组对象,删除并拿到arguments的第一项。...

  • 类数组对象与arguments

    原文出处 JavaScript深入之类数组对象与arguments 类数组对象 所谓的类数组对象: 拥有一个 le...

网友评论

      本文标题:arguments 类数组 解析, 如何转化成数组?

      本文链接:https://www.haomeiwen.com/subject/ydegphtx.html