将类数组转换成数组的方法——slice()的使用

这边文章分两部分,第一部分是slice()的使用,第二部分是用slice将类数组转换成数组

第一部分:

官方文档说:slice是用来截取选取数组的,可传入一个或两个参数,返回值是新数组,不会影响原数组。

 

先new了Array一个数组 str

        var str = new Array();
        str[0] = 1;
        str[1] = 2;
        str[2] = 3;
        str[3] = 4;
        str[4] = 5;

 返回值是选取的新数组,原数组是不会被修改的。

如果是一个参数就是从何处开始(下标)选取到数组的末尾。

var strs = str.slice(2);
console.log(strs);      // [3, 4, 5]
console.log(str);       // [1, 2, 3, 4, 5]

如果传入二个参数就是从第一个参数(下标)开始选取到第二个参数(下标)结束,但是不包括第二个参数

var strs = str.slice(2,4);
console.log(strs);      // [3, 4]

如果传入的是负数,规定从数组的尾部开始算起,-1指最后一个元素,-2指倒数第二个元素,以此类推

var strs = str.slice(-2);
console.log(strs);      // [4, 5]

 如果传入两个负数,和上面一样 不过都是都从数组的尾部开始。

var strs = str.slice(-4,-1);
console.log(strs);      // [2, 3, 4]

如果传入两个参数,第二个参数小于第一个参数,那么结果为空数组(负数也同理)。

var strs = str.slice(-1,1);      
console.log(strs);      // [ ]

 

好了  上面就是slice函数的使用方式

不过在实践中一般是用来将类数组转换成数组

这是我之前写的一串HTML代码用来获取类数组

    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>

结果如下:

var NodeList = document.querySelectorAll("div");

console.log(NodeList);      //NodeList(10) [div, div, div, div, div, div, div, div, div, div]

NodeList = [].slice.call(NodeList);

console.log(NodeList)       //(10) [div, div, div, div, div, div, div, div, div, div]

第一行是先获取一串类数组

第二行是在控制台输出类数组

第三行是转换类数组(需要用变量来接受)或者Array.prototype.slice.call(NodeList)也是可以的,两个是同理

第四行是在控制台输出转换过的数组。

不知道你学会了没?我也不知道学会没,反正敲了好几遍hhhh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值