资讯专栏INFORMATION COLUMN

在JavaScript中如何将类数组对象转为真实数组

dackel / 1184人阅读

摘要:中有哪些类数组对象伪数组函数的实参结构将类数组对象转为真实数组以上文对象为例遍历类数组元素并进一个新数组数组实例上的方法在不接受任何参数的情况下是复制一个数组再利用或调用方法可以实现将类数组对象转为真实数组方法可以将任何具有属性的对象转为数

1.JavaScript中有哪些类数组对象(伪数组)

(1)arguments 函数的实参

function test() {
    return arguments;
}
let arg = test(1,4,7,4,3,6,4);
console.log(arg);
    

(2)set 结构

new Set([2,5,6,3,4,3,6,6]);

(3)nodeList

document.getElementsByTagName("div");

2.将类数组对象转为真实数组(以上文arguments对象为例, arg)

(1)遍历类数组元素, 并push进一个新数组

let newArr = [];
for(let i=0; i

(2)数组实例上的slice方法, 在不接受任何参数的情况下是复制一个数组, 再利用call(或apply)调用slice方法, 可以实现将类数组对象转为真实数组

Array.prototype.slice.call(arg);
[].slice.call(arg);

(3)Array.from()方法, 可以将任何具有length属性的对象转为数组

Array.from(arg);

(4)扩展运算符..., 可以将所有布署了Iterator接口的对象转为数组

[...{length: 3}];

(5)jQuery的核心方法$.makeArray()

$.makeArray(arg);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108056.html

相关文章

  • Javascriptcall和apply的理解

    摘要:剩下的两个,我们分别改变了他们的执行环境,分别指向了和,于是结果就是显示对象各自的值。如果你仍然对和没有清晰的认识,可以试着这样理解。 在Javascript中,每个函数都包含两个非继承而来的方法,call和apply。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内的this对象的值。摘自《JavaScript高级程序设计》 apply方法接收两个参数,第一个参数...

    mrcode 评论0 收藏0
  • 函数的apply,call入门介绍

    摘要:函数中的入门牵扯到就要先说一下它们和函数的渊源函数既是也是对象它和其它的对象没有什么区别。但是我们可以通过和在函数调用时显示指定所需的值。那就意味这任何函数可以被任何对象调用这才是和的方法的最终目的。否则会出现数组元素为的情况值值值值值 函数中的apply,call入门   牵扯到apply,call就要先说一下它们和函数的渊源 Javascript函数既是也是对象   它和其它的...

    yankeys 评论0 收藏0
  • JavaScript学习笔记之数组(一)

    摘要:数组基础篇数组的语法数组是按次序排列的一组值。属性数组的属性,返回数组的成员数量。通过设置的值改变数组的长度将属性设为可以清空数组。类似数组的对象并不是数组,因为它们不具备数组特有的方法。 数组基础篇 1.数组的语法 数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始)。var arr=[1,2,3] //arr[0]=1任何类型的数据,都可以放入数组。 var ...

    Yangder 评论0 收藏0
  • 【JS】JavaScript数组以及数组API学习总结

    摘要:返回数组内容的字符串表示形式将数组中每个元素转为字符串,并用逗号连接。拍照连接符将数组中每个元素转为字符串,用自定义的连接符连接每个元素需要用变量借助。 关于数组篇的记录,纯自己总结,会持续更新~ 原生js方法 1:创建数组的几种方法: var arr = []; var arr = new Array(); var arr = [1,2]; var arr = new Arr...

    roundstones 评论0 收藏0
  • Slice无参调用可以将类数组对象(含有length属性)转化成数组

    摘要:首先,有两个用法,一个是一个是,第一个返回的是字符串,第二个返回的是数组,这里我们看第个。最后,附个转成数组的通用函数据说这样比快 Array.prototype.slice.call(arguments) 根据call的使用方法,我们可以猜测以下可能相等: [].slice.call(arguments) => arguments.slice() 我带着好像少了一个必需参数的疑问去...

    MudOnTire 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<