繁体   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