アレイの配列の要素を交換された関数は、戻りは、特定のインデックスで定義されていません

ルイザJandarian:

私は、配列の配列を持っています。私の配列が呼び出されるsplitarr [ARRAY2 []、配列1 []、ARRAY0 []、ARRAY3 [] ...] 私はスワップにしたいので、それはない、インデックス2にインデックスゼロから正しく注文されるsplitarrそれがよりこのようになっていること=> splitarr [ARRAY0 []、配列1 []、配列2 []、ARRAY3 [] ...] しかし、私のコードは動作するようには思えません。私がしようとするとCONSOLE.LOG私の配列を、要素を切り替えることになっているインデックスがされている未定義

function blabla(){
dividersecond = 2;
splitarrayindex = 0;
splitarr = [[],[],[],[]] //this is just pseudo code line, i already heave a functioning array
splitarr = ReorderArray(dividersecond,splitarrayindex,splitarr);
console.log(splitarr);
}

私は私が私の配列を並べ替え機能を呼び出そう機能を(他のすべてが長すぎるので、これは機能のほんの1部分である)、持っています。

function ReorderArray(Count,Index,Array){

  var originalIndex = Index;

  for(Index; Index<Count;Index++){
    var swapIndex = (Count-Index);
    var temp = Array[Index];
    Array[Index] = Array[swapIndex];
    Array[swapIndex] = Array[temp];
  }
    return Array();
}

私は私のコンソールに戻り、このようにそれを行う場合

[Array(8), undefined, undefined, Array(8), Array(8), Array(8)]

また、私はこれを試してみました。

...
Array[Index] = Array[swapIndex];
Array[swapIndex] = Array[temp];
return Array();
  }
}

しかし、その後コンソールはこのような何かを返します。

[Array(8), Array(4), undefined, Array(8), Array(8), Array(8)]

しかし私は、私はわかりませんし、私はこの問題を解決する方法がわからない、間違っているものを想像することができます。

もちろん、全く意味のループになるの私の配列を返す、それだけでループを終了しますが、実際にループの各実行中happingれているもの、この番組。

私は多くのことをデバッグしていると私はどんな結論に来ることができません。これまでのところ、配列の値は、[インデックス]はループが呼び出されるたびに置かれている位置にその時には不定に曲がるように見えます。

このような第1のループに見えるので、

[Array(8), Array(4), undefined, Array(8), Array(8), Array(8)]

そのような第二のループ

[Array(8), undefined, undefined, Array(8), Array(8), Array(8)] 

私はいくつかの助けを取得したい場合には幸せになります!

ファビオGorodscy:

あなたは正しく一時変数に配列を格納しています

temp = Array[Index];

あなたはそれを回復しようとしているときしかし、あなたは「配列」からpostion「一時」にアクセスしようとしています。これは動作しません。

Array[swapIndex] = Array[temp];

私が何を望んでいたことは「TEMP」に格納された配列を、回復したと信じています。このような:

Array[swapIndex] = temp;

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=30952&siteId=1