Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果splice()的第一个参数为-1,则JavaScript splice()方法将删除数组的最后一项_Javascript - Fatal编程技术网

如果splice()的第一个参数为-1,则JavaScript splice()方法将删除数组的最后一项

如果splice()的第一个参数为-1,则JavaScript splice()方法将删除数组的最后一项,javascript,Javascript,我正在使用JavaScriptsplice()方法从数组中删除元素。 代码如下所示 var fruits = ["Banana", "Orange", "Apple", "Mango"]; function myFunction() { var index = fruits.indexOf('Kivi'); fruits.splice(index , 1); document.getElementById("demo").innerHTML = fruits; } 调

我正在使用JavaScript
splice()
方法从数组中删除元素。 代码如下所示

var fruits = ["Banana", "Orange", "Apple", "Mango"];

function myFunction() {
    var index = fruits.indexOf('Kivi');
    fruits.splice(index , 1);
    document.getElementById("demo").innerHTML = fruits;
}
调用函数后,数组的最后一个元素将被删除。为什么会这样?

手册:

开始更改数组的索引。如果大于数组的长度,则实际开始索引将设置为数组的长度。如果为负,则从末尾开始许多元素


这只是出于设计。如果您将其设置为-2,它将从第一个到最后一个元素中删除,等等。因此,您在这里尝试的操作将不起作用。为什么不停止执行if
index==-1
并返回那里呢?您想确切知道什么?因为
fruits.indexOf('Kivi')==-1
,并且
-1
告诉splice()从末尾取一个。如果索引是负数,它将从数组的末尾开始工作-
作为负索引,begin表示从序列末尾的偏移量。切片(-2)提取序列中的最后两个元素。