码迷,mamicode.com
首页 > 其他好文 > 详细

再次认识slice和splice,比较总结

时间:2017-08-26 16:00:03      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:操作   处理   今后   变化   比较   删除   span   循环   数组   

  这两个方法都算是处理数组中经常的了。但是看似功能相似,其实区别还是蛮大的,尤其是splice。抽空做一个比较,不算深入吧,至少避免在今后的开发开发过程中出现不必要的麻烦。

英文:

  slice:切成片; 切下; 划分;

  splice:绞接; 捻接(两段绳子); 胶接; 粘接(胶片、磁带等);

定义:
* slice:slice() 方法可从已有的数组中返回选定的元素;
* splice:splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目;
功能:
共性:
1.都是对数组的操作,通过起始位置和终点位置来获取数组。
差异性:
1.splice是对数组对象本身的操作,可以向数组指定位置注入新的元素,同时修改的也是数组对象本身。
2.slice的操作是一种copy的行为,将指定的始末位置的元素copy到一个新的数组对象上,而数组对象本身并没有发生改变。
3.splice多一个注入元素的功能。
返回结果对比:
* slice会返回指定的数组,但是不会修改数组。返回的是一个新的数组对象。
* splice是针对数组的操作,他返回的就是调用这个方法的对象。

引发的问题:
1.splice对数组本身的操作会引发问题(踩过坑),尤其在for循环时如果你的循环次数是依赖数组的length来决定的话,那么在for循环体内千万不要做splice的操作,
因为splice的操作会导致数组本身的长度发生变化,循环次数就会被影响,直接影响输出结果的准确性。
2.如果要用splice操作数组,要考虑清楚之前是不是有将这个数组赋值给别的变量过,毕竟赋值后大家都指向了一个对象,你变动,赋值对象也会一起变动,如果splice操作后又需要操作
该数组,也是会引发问题的。不要试图通过赋值来保存需要修改的数组。
3.对splice的使用还是要谨慎,当然有特定的场景发挥他的作用,但是如果只是单纯想要数组中指定的元素,还是slice比较保险。毕竟独立出新的对象是大大降低了耦合性的。

 

再次认识slice和splice,比较总结

标签:操作   处理   今后   变化   比较   删除   span   循环   数组   

原文地址:http://www.cnblogs.com/boboWeb/p/7435374.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!