★ wanayoo — archive 1999 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/spliceNouvelle recherche | Portail wanayoo

Help us test GitHub Sign-in on our stage server.

mozilla
您的搜索结果

    Array.prototype.splice()

    概述

    splice() 方法用新元素替换旧元素,以此修改数组的内容。

    语法

    array.splice(index , howMany[, element1[, ...[, elementN]]])
    
    array.splice(index) // SpiderMonkey/Firefox extension

    参数

    index
    从数组的哪一位开始修改内容。如果超出了数组的长度,则自动从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位。
    howMany
    整数,表示要移除的数组元素的个数。如果 howmany 是 0,则不移除元素。这种情况下,至少应添加一个新元素。如果 howmany 超出了 index 位之后的元素的总数,则从 index 向后至数组末尾的全部元素都将被删除(含第 index 位)。如果没有指定 howmany 参数(如上第二种语法,是 SpiderMonkey 的扩展功能),将会删除第 index 位之后的所有元素(不含第 index 位)。
    element1, ..., elementN
    要添加进数组的元素。如果不指定,则 splice 只删除数组元素。

    返回值

    由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。

    说明

    如果添加进数组的元素个数不等于被删除的元素个数,数组的长度会发生相应的改变。

    示例

    示例:使用 splice

    如下代码演示了 splice 的用法:

    var myFish = ["angel", "clown", "mandarin", "surgeon"];
    
    //从第 2 位开始删除 0 个元素,插入 "drum"
    var removed = myFish.splice(2, 0, "drum");
    //运算后的 myFish:["angel", "clown", "drum", "mandarin", "surgeon"]
    //被删除元素数组:[],没有元素被删除
    
    //从第 3 位开始删除 1 个元素
    removed = myFish.splice(3, 1);
    //运算后的myFish:["angel", "clown", "drum", "surgeon"]
    //被删除元素数组:["mandarin"]
    
    //从第 2 位开始删除 1 个元素,然后插入 "trumpet"
    removed = myFish.splice(2, 1, "trumpet");
    //运算后的myFish: ["angel", "clown", "trumpet", "surgeon"]
    //被删除元素数组:["drum"]
    
    //从第 0 位开始删除 2 个元素,然后插入 "parrot", "anemone" 和 "blue"
    removed = myFish.splice(0, 2, "parrot", "anemone", "blue");
    //运算后的myFish:["parrot", "anemone", "blue", "trumpet", "surgeon"]
    //被删除元素的数组:["angel", "clown"]
    
    //从第 3 位开始删除 2 个元素
    removed = myFish.splice(3, Number.MAX_VALUE);
    //运算后的myFish: ["parrot", "anemone", "blue"]
    //被删除元素的数组:["trumpet", "surgeon"]
    

    规范

    Specification Status Comment
    ECMAScript 3rd Edition Standard Initial definition.
    Implemented in JavaScript 1.2
    ECMAScript 5.1 (ECMA-262)
    Array.prototype.splice
    Standard  
    ECMAScript 6 (ECMA-262)
    Array.prototype.splice
    Draft  

    浏览器兼容性

    Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Basic support 1.0 1.0 (1.7 or earlier) 5.5 (Yes) (Yes)
    Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

    向后兼容

    在 JavaScript 1.2 中,如果只删除了一个元素(即 howmany 参数为 1),则 splice 方法返回这个被删除的元素;当删除多个元素时,返回由被删元素组成的数组。不过,在 Netscape Navigator 4 之后就没有浏览器使用 JavaScript 1.2 了,所以可以认为 splice 总是返回一个数组。

    其他资料

    • push / pop - 在数组末尾增/删元素;
    • unshift / shift - 在数组首部增/删元素;
    • concat - 把一个(或多个)数组和(或)值与原数组拼接,返回拼接后的数组。

    文档标签和贡献者

    对本页有贡献的人: Qin, huyue
    最后编辑者: Qin,