首页 > web前端 > js教程 > 正文

如何用slice将类数组转换成数组

yulia
发布: 2018-09-14 16:03:51
原创
2346人浏览过

这篇文章分两部分,第一部分是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]
登录后复制

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

怪兽AI数字人
怪兽AI数字人

数字人短视频创作,数字人直播,实时驱动数字人

怪兽AI数字人44
查看详情 怪兽AI数字人
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)也是可以的,两个是同理
第四行是在控制台输出转换过的数组。
不知道你学会了没?我也不知道学会没,反正我自己敲了好几遍,哈哈。

以上就是如何用slice将类数组转换成数组的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号