У меня есть массив массивов. Мой массив:
splitarr [Array0 [], Array3 [], Array [2], Array [1], Array [4] ...]
It как вы видите, не упорядочен правильно, я хочу упорядочить его так, чтобы он выглядел примерно так.
splitarr [Array0 [], Array1 [], Array2 [], Array3 [], Array [ 4] ...]
Чтобы лучше все понять. Существуют различные «функции», которые определяют, где будет отсортирован массив. До сих пор я написал функцию, которая правильно упорядочивает массив, когда «индекс», где он упорядочен неправильно, равен 0. Но чтобы полностью объяснить, как я знаю, где он упорядочен неправильно, потребуется слишком много времени, чтобы объяснить.
var dividersecond = 2;
«Секундный делитель», происходит от функции. Но что важно знать в этом контексте, это то, что мой массив упорядочен неправильно при таком количестве позиций, например, как:
splitarr [Array2 [], Array1 [], Array0 [], Array3 [] ...]
var splitarrayindex = 0;
Это индекс массива, с которого начинается неправильный порядок.
mySplitArray = ReorderArray(dividersecond,splitarrayindex,mySplitArray);
function ReorderArray(Count,Index,Array){
var originalIndex = Index;
for(Index;Index<Count-1;Index++){
var swapIndex= (Count-Index);
var temp = Array[Index];
Array[Index] = Array[swapIndex];
Array[swapIndex] = temp
}
Array.splice(originalIndex,1);
return Array;
}
Эта функция работает до тех пор, пока индекс равен 0. Что имеет смысл. Одна из моих проблем - "Count-1" , в "for-l oop" . Когда мой индекс равен «0» и 3 элемента (делитель = 2) упорядочены неправильно , мне, конечно, нужно «2» времени обмена . Если мой индекс равен «1», то «Count-1» может помешать этому.
Существуют другие вещи, которые определяют, будет ли мой массив упорядочен правильно, например, для определения Текущий индекс и текущий индекс свопа. Все это и тот факт, что я новичок в Javascript и сортировке массивов, оставляют меня без решения. Если бы кто-то мог помочь мне с функцией, которая была бы потрясающей!
Вот краткое описание того, что я хочу сделать в своем Коде. (Визуализируется с помощью чисел)
2103
(поменяйте местами на 0 и 2)
0123
Код, подобный этому, уже работает, поскольку индекс 0
03214
(Поменять местами индекс 1 и индекс 3)
01234
Как мне сделать эту работу?