javascript类数组转数组

1:什么是类数组

简单的说--具有数组的length属性,但是不具备数组的方法,如shift,unshift,splice,slice,concat,reverse,sort,forEach等

2:使用场景

     1:函数内部arguments对象

     2:获取的dom对象,如$('ul li')

 

3:测试arguments

 
 
    test(10,20,30);
    function test(a,b,c,d) {
        console.log('arguments:',arguments);
        console.log('length:',arguments.length);
        arguments.forEach((item)=>{
            console.log('item:',item);
        })
    }


 程序结果如下:

 

4:测试dom操作场景

    

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
</body>
<script src="jquery.min.js"></script>
<script>
    var li = $('ul li');
    li.forEach((item)=>{
        console.log(item);
    })
</script>
</html>

程序执行效果:

 从上面两个例子中我们可以发现,类数组虽然具有数组的length 属性,但是没有数组的方法,所以都会报错,那么怎样才能使其具有方法呢?

 

5:类数组转数组

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
</body>
<script src="jquery.min.js"></script>
<script>
    var li = $('ul li');
   
    var item = translateClassArrToArr(li);
    item.forEach((item)=>{
      console.log($(item));
    });
    
    
    //类数组转数组
    function translateClassArrToArr(arr) {
        return Array.prototype.slice.call(arr);
    }
</script>
</html>

  

 转化之后再执行上面的程序后可以正常使用

6:总结:

类数组转数组的核心代码就是:Array.prototype.slice.call(arr);至于原理可以自己去深入研究一下,本文不作具体阐述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值