社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
前端inn
公众号ID:前端inn
关注
作者:沐雨
编辑:煜喵喵不爱喝酒
1.利用apply方法将 真数组 转换为 `伪数组`
代码说明:
- 通过[].push/Array.prototype.push找到数组中的push方法
- 通过apply(obj)将找到的push方法内部的this修改为自定义的对象
- 将传入数组中的元素依次取出, 传递给形参
var arr = [1, 3, 5, 7, 9];var obj = {}; //=>自定义的对象[].push.apply(obj, arr);console.log(obj);
2.利用call方法将`伪数组` 转换为 `真数组`
数组的slice方法
- 如果slice方法什么参数都没有传递, 会将数组中的元素放到一个新的数组中原样返回
- slice方法的参数:第一个参数是起始位置,第二个参数是结束位置。包头不包尾
var arr2 = [1, 3, 5, 7, 9];// var res2 = arr2.slice(); //=>[1, 3, 5, 7, 9]// var res2 = arr2.slice(2);//=>[5, 7, 9]var res2 = arr2.slice(2, 4);//=>[5, 7]console.log(res2);
如果想将伪数组转换为真数组那么可以使用如下方法:
代码分析同第一点
// 系统自带的伪数组// var res = document.querySelectorAll("p");// 自定义的伪数组var obj = {0:"lnj", 1:"33", length: 2}; var arr = [].slice.call(obj);console.log(arr);
注意点:
- `伪数组` 除了能转换为 `真数组`外,还可以转换为`伪数组`。比如把`伪数组`里面元素的顺序翻转后输出
- 无论是将`伪数组` 转换为 `真数组`还是转换为`伪数组`,都需要先将`伪数组` 转换为 `真数组`
若您对前端开发有兴趣请关注前端inn
遇到问题,请联系我们 QQ群:1141255876
求分享
求点赞
求在看
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!