我有一個排序問題在JavaScript中,我需要排序一個數組和排序字幕(保存在另一個數組中)以相同的順序(降序),我怎麼排序他們以同樣的方式?Javascript排序標題數組與相同的數據排列方式
對於帖子的清晰,我將其降低到一個基本的例子:
var arr = Array(9, 5, 11, 2, 3);
var arrCaptions = Array("some text","another bit of text","three", "four?", "maybe five?");
現在我想運行的一種排序機制,排序arrCaptions陣列相同的方式ARR陣列,這樣的結果,你會得到這樣的:
var arrResult = Array(11, 9, 5, 3, 2);
var arrCaptionsResult = Array("three", "some text" ,"another bit of text", "maybe five?", "four?");
我至今嘗試過沒有在所有的工作:
var numlist = Array(9, 5, 11, 2, 3);
var list = Array("four?","maybe five?","another bit of text","some text","three");
var resultnumlist = Array();
var resultlist = Array();
resultnumlist[0] = numlist[0];
resultlist[0] = list[0];
for (i = 0; i < list.length; i++) {
var i2 = list.length - 1;
while (numlist[i] < resultnumlist[i2]) {
i2--;
}
resultnumlist.splice(i2 - 1,0,numlist[i]);
resultlist.splice(i2 - 1,0,list[i]);
}
雖然,您已經選擇了您的答案,但如果您可以解釋您嘗試構建的邏輯,我可以幫助修復您的代碼。你只是想在每次運行中找到最低的數字,然後將它插入到結果數組中?如果是這樣,請檢查:http://jsbin.com/awaveb/3/watch – closure
是的,這就是我試過的,我檢查了你的代碼,這實際上是我想要的。 :)雖然它是一種錯誤的方式,但找不到我自己的錯誤... – JohannesB
我的邏輯如下:從最後一個元素開始(如果算法運行良好,這將是最低的),循環遍歷結果數組直到電流的值大於結果數組索引,然後記住該索引的數量。然後,我會在該索引處插入新元素的值,就像我會處理該值的標題一樣。理論上,結果將是一個完美排序的數組:P – JohannesB