Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
Javascript 如何使用splice交换阵列中的数据_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用splice交换阵列中的数据

Javascript 如何使用splice交换阵列中的数据,javascript,jquery,Javascript,Jquery,我有个小问题。我只是尝试交换数组中的数据。我使用的是拼接,但它仍然在最后保留1个元素。如何在不保留其他数据的情况下完全替换当前存在的数据 $(“#测试”)。单击(函数(){ 水果.拼接(0,1,“柠檬”,“猕猴桃”); document.getElementById(“demo”).innerHTML=fruits; }); var水果=[“香蕉”、“橙色”]; var col1=[“香蕉”、“橙子”、“馅饼”、“椒盐卷饼”]; var col2=[“香蕉”、“橙色”]; document.g

我有个小问题。我只是尝试交换数组中的数据。我使用的是拼接,但它仍然在最后保留1个元素。如何在不保留其他数据的情况下完全替换当前存在的数据

$(“#测试”)。单击(函数(){
水果.拼接(0,1,“柠檬”,“猕猴桃”);
document.getElementById(“demo”).innerHTML=fruits;
});
var水果=[“香蕉”、“橙色”];
var col1=[“香蕉”、“橙子”、“馅饼”、“椒盐卷饼”];
var col2=[“香蕉”、“橙色”];
document.getElementById(“demo”).innerHTML=fruits

单击按钮以添加和删除图元

试试看

设置为数组长度

fruits.splice(0, fruits.length, "Lemon", "Kiwi");
将值设置为数组长度

fruits.splice(0, fruits.length, "Lemon", "Kiwi");
来自MDN:

array.splice(start,deleteCount[,item1[,item2[,…])


开始 开始更改数组的索引(原点为0)。如果大于数组的长度,则实际起始索引将为 设置为数组的长度。如果是负数,将开始那么多 元素从最后开始

删除计数 一个整数,指示要删除的旧数组元素数。如果deleteCount为0,则不删除任何元素。在这种情况下,你应该 至少指定一个新元素。如果deleteCount大于 数组中剩余的元素数,从开始时开始,然后全部 数组末尾的元素将被删除。 如果省略deleteCount,deleteCount将等于(arr.length-start)

第1项、第2项。。。 要添加到数组中的元素,从开始索引开始。如果未指定任何图元,splice()将仅删除图元 从数组中

您的deleteCount被声明为1,这就是为什么它忽略了另一个值,因为您有2

fruits.splice(0, 1, "Lemon", "Kiwi");
应该是

fruits.splice(0, 2, "Lemon", "Kiwi");
或者最好采用@PranavCBalan方法将deleteCount设置为可变长度

$(“#测试”)。单击(函数(){
水果.拼接(0,2,“柠檬”,“猕猴桃”);
document.getElementById(“demo”).innerHTML=fruits;
});
var水果=[“香蕉”、“橙色”];
var col1=[“香蕉”、“橙子”、“馅饼”、“椒盐卷饼”];
var col2=[“香蕉”、“橙色”];
document.getElementById(“demo”).innerHTML=fruits

单击按钮以添加和删除图元

试试看 来自MDN的

array.splice(start,deleteCount[,item1[,item2[,…])


开始 开始更改数组的索引(原点为0)。如果大于数组的长度,则实际起始索引将为 设置为数组的长度。如果是负数,将开始那么多 元素从最后开始

删除计数 一个整数,指示要删除的旧数组元素数。如果deleteCount为0,则不删除任何元素。在这种情况下,你应该 至少指定一个新元素。如果deleteCount大于 数组中剩余的元素数,从开始时开始,然后全部 数组末尾的元素将被删除。 如果省略deleteCount,deleteCount将等于(arr.length-start)

第1项、第2项。。。 要添加到数组中的元素,从开始索引开始。如果未指定任何图元,splice()将仅删除图元 从数组中

您的deleteCount被声明为1,这就是为什么它忽略了另一个值,因为您有2

fruits.splice(0, 1, "Lemon", "Kiwi");
应该是

fruits.splice(0, 2, "Lemon", "Kiwi");
或者最好采用@PranavCBalan方法将deleteCount设置为可变长度

$(“#测试”)。单击(函数(){
水果.拼接(0,2,“柠檬”,“猕猴桃”);
document.getElementById(“demo”).innerHTML=fruits;
});
var水果=[“香蕉”、“橙色”];
var col1=[“香蕉”、“橙子”、“馅饼”、“椒盐卷饼”];
var col2=[“香蕉”、“橙色”];
document.getElementById(“demo”).innerHTML=fruits

单击按钮以添加和删除图元

试试看

预期结果是什么?为什么要使用两个事件侦听器…onclick和jQuery一个?为什么要使用
拼接
?您可以简单地将新值分配给数组。预期结果是什么?为什么有两个事件侦听器…onclick和jQuery一个?为什么要使用
splice
?您只需将新值赋给数组即可。