我查看了一些關於此主題的幫助,但無法找到一些幫助或指導。 我的問題是我試圖執行一系列由等號分隔的值。JavaScript穩定排序問題
「富=酒吧,惡作劇=樂趣,A = B ...等等」
我目前的排序工作,但前提是沒有價值是一樣的。如果我有這樣一些值:
「富=酒吧,A =酒吧,土豆=酒吧」
當排序完成後,他們都將是 「A =酒吧」
我目前的排序是這樣的,有人能夠指出我正確的方向嗎?
$('#sortByValue').click(function() {
\t var textValueArray = document.getElementById('nameValuePairList');
\t textArray = new Array();
\t valueArray = new Array();
\t oldValues = new Array();
\t for (i = 0; i < textValueArray.length; i++) {
\t \t valueArray[i] = textValueArray.options[i].value;
\t \t textArray[i] = textValueArray.options[i].text;
\t \t oldValues[i] = textValueArray.options[i].value;
\t }
\t valueArray.sort(function(a, b) {
\t \t return a.toLowerCase().localeCompare(b.toLowerCase());
\t });
\t for (i = 0; i < textValueArray.length; i++) {
\t \t textValueArray.options[i].value = valueArray[i];
\t \t for (j = 0; j < textValueArray.length; j++) {
\t \t \t if (valueArray[i] == oldValues[j]) {
\t \t \t \t textValueArray.options[i].text = textArray[j];
\t \t \t \t j = textValueArray.length;
\t \t \t }
\t \t }
\t }
});
我知道,我的問題就出在這裏:valueArray [I] == oldValues [J] 當數據進入valueArray = {酒吧,美孚,酒吧}而textArray =爲{Foo = Bar,A = Foo,Test = Bar}
但是,我不確定如何最好地解決它。
你想要的結果是什麼? – PHPglue
對於{A = C,測試=酒吧,代碼=有趣,Foo =酒吧}的輸入 完成的排序應該看起來像。 {Foo = Bar,Test = Bar,A = C,Code = Fun} 它應該按'='符號右側的內容進行升序排序。 – OddBall
爲什麼你想要創建這個?這是可行的,但真的。 – PHPglue