簡體   English   中英

如何防止鍵值數組Javascript中的默認排序

[英]How to prevent default sorting in key value array Javascript

我有這個數組:

recentPageArray = {
  "e49f8a67-3075-433a-bacd-30379008fdb2": {
    "id": "e49f8a67-3075-433a-bacd-30379008fdb2",
    "name": "afolder",
    "type": "indexfolder"
  },
  "3a1ca419-5467-4662-9f7a-f3e9246a1d49": {
    "id": "3a1ca419-5467-4662-9f7a-f3e9246a1d49",
    "name": "folder1",
    "type": "indexfolder"
  },
  "832f9d4e-297e-40e9-9189-75ce3b86341a": {
    "id": "832f9d4e-297e-40e9-9189-75ce3b86341a",
    "name": "afolder",
    "type": "documentfolder"
  },
  "86fee1ce-21cd-4948-bf9d-a6c81b897a0e": {
    "id": "86fee1ce-21cd-4948-bf9d-a6c81b897a0e",
    "name": "afolder",
    "type": "documentfolder"
  }
}

每當我在此數組中推送新數組時。 鍵自動排序。 我不想在鍵庫中對數組進行排序。 我需要在數組頂部添加新的按鍵項目。

我建議您保留2個引用:1數組(列表)1對象(鍵,值)

Object(key-> val)無法維持元素的插入順序(並​​且如果某個新的utopic新瀏覽器實現希望以降序排列(出於任何原因),您的代碼將是明智的。

因此,在填充對象的同時,還要按Array中的element鍵。 當您要迭代時,請使用Array進行迭代(而且速度也更快)

myObject = {};
myArray = [];
/** POPULATING **/
for (var x in myData){
   myObject[myData[x].key] = myData[x].value;
   myArray.push(myData[x].key);

}
/** ITERATING **/
for (var y =0; y < myArray.length; y++){
   var readingKey = myArray[y];
   var storedData = myObject[readingKey];
   //your code here
}

問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM