我很困惑。我有一个数组,myArray = [2, 2, 2, 1, 1]
并且不知道,它采用了数组testArray的值。
if(count == 5) {
alert("beginn" + myArray[2]);
var testArray=testFunction(myArray);
alert("middle" + myArray[2]);
var testCount=countNumber(testArray);
if (testCount = 3){
count = 4;
}
}
这是函数:
function testFunction(testArray){
var minimum=Math.min.apply(Math,testArray);
var i=0;
var position=-1;
for(i;i<testArray.length;i++){
if(position==-1){
if(minimum==testArray[i]){
position=i;
}
}
}
i = 0;
for(i; i < testArray.length; i++){
if(i != position){
testArray[i] = testArray[i] - 1;
}
}
return testArray;
}
因此,在testArray函数正确之后[1,1,1,1,0]
,但不幸的是myArray和我也不知道为什么。
在JavaScript中,将数组对象分配给另一个变量时,基本上是在将指针分配给原始数组对象。这意味着,如果您这样做:
var myArray = [1,2,3,4];
var testArray = myArray;
那么对testArray所做的任何更改也将对myArray进行更改,因为它们实际上是同一数组!
为了myArray
避免更改,您需要传递数组的副本:
var myCopy = myArray.slice(0);
var testArray=testFunction(myCopy);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句