Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 如何使用for循环交换数组的前2个元素 功能交换(arr){ var finalarr=[]; var tempArr=arr; 对于(i=0;i[2,1,3,4],, 但是它却输出=>[1,1,3,4]_Javascript_Arrays_For Loop - Fatal编程技术网

Javascript 如何使用for循环交换数组的前2个元素 功能交换(arr){ var finalarr=[]; var tempArr=arr; 对于(i=0;i[2,1,3,4],, 但是它却输出=>[1,1,3,4]

Javascript 如何使用for循环交换数组的前2个元素 功能交换(arr){ var finalarr=[]; var tempArr=arr; 对于(i=0;i[2,1,3,4],, 但是它却输出=>[1,1,3,4],javascript,arrays,for-loop,Javascript,Arrays,For Loop,能否修改此数组以交换array中的前2个元素?tempArr和arr是对同一对象的引用(您可以了解更多信息) 在您的情况下,不需要使用第二个数组,只需存储一个临时值,即可执行以下操作,例如: function swap(arr){ var finalarr = []; var tempArr = arr; for(i=0; i<1; i++){ arr[i + 1] = arr[i]; arr[i] = tempArr[i + 1]; } return arr; } 要

能否修改此数组以交换array中的前2个元素?

tempArr
arr
是对同一对象的引用(您可以了解更多信息)

在您的情况下,不需要使用第二个数组,只需存储一个临时值,即可执行以下操作,例如:

function swap(arr){
var finalarr = [];
var tempArr = arr;

for(i=0; i<1; i++){
    arr[i + 1] = arr[i];
    arr[i] = tempArr[i + 1];
}
return arr;
}

要做到这一点,您需要一个临时变量,而不是数组和循环

var temp = arr[i + 1]
arr[i + 1] = arr[i]
arr[i] = temp

在保存数组的值之前,您将覆盖数组的第二个元素,因此使用您的方法,
[1]
处的值将永远丢失

您可以先保存该值,然后将其分配给
arr[0]

功能交换(arr){
常数项1=arr[1];
arr[1]=arr[0];
arr[0]=item1;
返回arr;
}
log(交换([1,2,3,4]);
var temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;