• JavaScript中数组slice和splice的对比小结


    前言

    今天重温了一下Javascript,看到了数组的方法,其中有两个比较相似的方法——splice和splice,看着很像,就是多了一个p,但是用法却相当不一样。

    在使用中,可以通过选择一个具有强语义表达性的 API 来减少混淆的发生。

    1、slice

    slice是指定在一个数组中的元素创建一个新的数组,即原数组不会变

    数组的 slice (ECMAScript 5.1 标准 15.4.4.10 节)非常类似于字符串的 slice。根据规范,slice 需要两个参数,起点和终点。它会返回一个包含了从起点开始,到终点之前之间所有元素的新数组。

    理解 slice 的功能并不是太难:

    1
    2
    'abc'.slice(1,2)   // "b"
    [14, 3, 77].slice(1, 2) // [3]

    需要特别注意的是它并不会修改原数组。

    下面的代码段描述了这个行为,x 的值没有变,y 则是被截取的部分。

    1
    2
    3
    4
    var x = [14, 3, 77];
    var y = x.slice(1, 2);
    console.log(x);   // [14, 3, 77]
    console.log(y);   // [3]

    2、splice

    splice是JS中数组功能最强大的方法,它能够实现对数组元素的删除、插入、替换操作,返回值为被操作的值。

         splice删除:color.splice(1,2) (删除color中的1、2两项);

         splice插入:color.splice(1,0,'brown','pink') (在color键值为1的元素前插入两个值);

         splice替换:color.splice(1,2,'brown','pink')  (在color中替换1、2元素);

    虽然 splice(15.4.4.12 节)也需要(至少)两个参数,但它的意义则完全不同。

    1
    2
    [14, 3, 77].slice(1, 2)  // [3]
    [14, 3, 77].splice(1, 2) // [3, 77]

    除此之外,splice 还会改变原数组。

    不要太惊讶,这正是 splice 的本意。

    1
    2
    3
    4
    var x = [14, 3, 77]
    var y = x.splice(1, 2)
    console.log(x)   // [14]
    console.log(y)   // [3, 77]
  • 相关阅读:
    任务墙(6月3日)
    燃尽图(6月3日)
    6.1-6.2小结
    5月28日任务进展
    个人感悟
    代码评审
    如何用ZBrush确定头部五官的位置
    ZBrush中的纹理-水手该怎样进行绘制
    怎样对ZBrush中的材料进行渲染和着色
    快速熟悉Zbrush中的四种裁切笔刷
  • 原文地址:https://www.cnblogs.com/mmzuo-798/p/7403207.html
Copyright © 2020-2023  润新知