类数组转化为数组的几种方式?

(1)通过 call 调用数组的 slice 方法来实现转换
Array.prototype.slice.call(arrayLike);

数组的slice()方法可以从已有数组中返回一个新数组,它可以接受两个参数arr.slice(start,end),第一个参数规定从何处开始选取,第二个参数表示从何处选取结束,如果不传参将返回原数组的一个副本,但该方法不会修改原数组,而是返回截取的新数组。

slice(start,end) 方法选择一个从开始到结束(不包括结束)的数组的一部分浅拷贝到一个新的数组对象,方法不会改变原数组。如果是对象则拷贝对象的引用到新数组,如果是基本类型则会拷贝这些值到新数组。

如果省略start则会从0开始。如果end被省略则会抽取到最后一个元素,如果end数值大于数组长度则会抽取到最后一个元素。

(2)通过 call 调用数组的 splice 方法来实现转换
Array.prototype.splice.call(arrayLike, 0);
它返回的是数组,使用call或者apply指向伪数组

splice(start,count,item)方法传入的参数不同,第一个参数代表开始选取的元素位置(必选值),第二个说明选取的元素数量(不传说明从第一个参数位置开始到数组的最后一个元素),第三个参数代表需要添加的元素(将会添加到第一个参数位置上)。

(3)通过 apply 调用数组的 concat 方法来实现转换
Array.prototype.concat.apply([], arrayLike);
(4)es6新增了Array.from()方法,可以直接将类数组转换为真正的数组。

通过 Array.fro

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,有几种方法可以将其他型转化为数组型。其中包括使用Array.from()方法、for-in循环和使用Array.prototype.slice.call()方法。 1. 使用Array.from()方法:这个方法可以将伪数组或可迭代对象转化为数组。伪数组是指对象的所有键名都是正整数或零,并且有length属性。示例代码如下: ```javascript var obj = { name: '小明', age: 22 }; var arr = Array.from(obj); console.log(arr); // \['小明', 22\] ``` 2. 使用for-in循环:通过遍历对象的属性,可以将对象转化为数组。for-in循环可以枚举原型链中的属性。示例代码如下: ```javascript var obj = { name: '小明', age: 22 }; var arr = \[\]; for (let i in obj) { arr.push(obj\[i\]); } console.log(arr); // \['小明', 22\] ``` 3. 使用Array.prototype.slice.call()方法:这个方法可以将可枚举、可迭代或伪数组转化为数组。示例代码如下: ```javascript let obj = { name: '李四', age: 22, gender: '男' }; //可枚举 let obj2 = { '0': '李四', '1': 22, '2': '男', length: 3 }; //伪数组 let set = new Set(\[1, '2', true\]); // 可迭代 let map = new Map(\[\[1, { name: '李四', age: 22 }\], \[2, \[1, 2, 3\]\]\]); // 可迭代 let arguments = function () { return arguments }; //可枚举 可迭代 伪数组 var arr1 = Array.prototype.slice.call(obj); var arr2 = Array.prototype.slice.call(obj2); var arr3 = Array.prototype.slice.call(set); var arr4 = Array.prototype.slice.call(map); var arr5 = Array.prototype.slice.call(arguments(1, 2, 3)); console.log(arr1); // \['李四', 22, '男'\] console.log(arr2); // \['李四', 22, '男'\] console.log(arr3); // \[1, '2', true\] console.log(arr4); // \[\[1, { name: '李四', age: 22 }\], \[2, \[1, 2, 3\]\]\] console.log(arr5); // \[1, 2, 3\] ``` 综上所述,以上三种方法可以在JavaScript中将其他型转化为数组型。 #### 引用[.reference_title] - *1* *3* [JS对象转数组](https://blog.csdn.net/qq_45199056/article/details/126530928)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [js对象转换为数组的两种方法](https://blog.csdn.net/weixin_45257251/article/details/124310214)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值