我有一個關於排序html元素的策略的一般問題。以下是先決條件:爲書寫排序html內容的策略
我正在動態構建將寫入HTML文件的內容。該內容被寫入一個字符串,隨後將其保存到html文件的主體中。內容包括UL和李標籤的等級表示的,例如
var mText = "<ul>";
mText += "<li class='folder'>folder 1";
mText += " <ul>";
mText += " <li class='page'>page 3</li>";
mText += " <li class='page'>page 2</li>";
mText += " <li class='folder'>sub folder 2";
mText += " <ul>";
mText += " <li class='page'>sub page 3</li>";
mText += " <li class='page'>sub page 1</li>";
mText += " </ul>";
mText += " </li>";
mText += " <li class='folder'>sub folder 1";
mText += " <ul>";
mText += " <li class='page'>sub page 5</li>";
mText += " <li class='page'>sub page 4</li>";
mText += " </ul>";
mText += " </li>";
mText += " </ul>";
mText += "</li>";
mText += "</ul>";
所以我結束了我想寫的元素的字符串表示((用空格和單獨的行爲清楚起見這裏編碼)如果發現錯別字或其他差異,請考慮僞代碼)。層次結構中可能有更多層次。
現在,我需要按文件夾名稱或文件名稱或兩者進行排序。這個字符串是從一個對象(關聯數組)的層次結構(鏈接列表)中構建的,因此在將該結構轉換爲文本之前進行排序會出現類似的問題......並且我試圖弄清楚在轉換之前是否更容易進行排序到字符串或之後。
我該如何去做這件事?將其轉換爲多維數組,對數組進行排序,然後轉換回字符串表示形式?或者有什麼方法可以對字符串的內容進行排序?
我不是JavaScript的新手,並理解排序 - 這沒有問題 - 但我只是尋找大方向,並感謝您的想法!
你錯過了我的筆記:這是僞代碼只爲了清晰!除此之外,沒有辦法對JavaScript對象進行排序,所以我必須將對象轉換爲數組,但是從已創建的對象的鏈表創建文本更方便,所以我認爲最終會更方便在事實之後排序。在我的上下文中,性能不是問題。 – Gordon
您可能想結帳:http://www.latentmotion.com/how-to-sort-an-associative-array-object-in-javascript/。它有一個排序關聯數組的方法。 – Adrian
當然,你可以排序對象數組,但我最初構建的表示不是對象數組,它是在對象屬性('關聯數組')中 - 它是表示文件樹的對象鏈表。由於頁面和文件夾數據給我的方式,我沒有使用數組來構建樹,所以我必須做很多交叉引用來遞歸地構造樹表示。使用對象屬性使交叉引用一個快速使用數組將是一件大事。 – Gordon