Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止键值数组Javascript中的默认排序_Javascript_Jquery_Sorting - Fatal编程技术网

如何防止键值数组Javascript中的默认排序

如何防止键值数组Javascript中的默认排序,javascript,jquery,sorting,Javascript,Jquery,Sorting,我有这个阵列: recentPageArray={ “e49f8a67-3075-433a-bacd-30379008fdb2”:{ “id”:“e49f8a67-3075-433a-bacd-30379008fdb2”, “名称”:“文件夹”, “类型”:“indexfolder” }, “3a1ca419-5467-4662-9f7a-f3e9246a1d49”:{ “id”:“3a1ca419-5467-4662-9f7a-f3e9246a1d49”, “名称”:“文件夹1”, “类型”:

我有这个阵列:

recentPageArray={
“e49f8a67-3075-433a-bacd-30379008fdb2”:{
“id”:“e49f8a67-3075-433a-bacd-30379008fdb2”,
“名称”:“文件夹”,
“类型”:“indexfolder”
},
“3a1ca419-5467-4662-9f7a-f3e9246a1d49”:{
“id”:“3a1ca419-5467-4662-9f7a-f3e9246a1d49”,
“名称”:“文件夹1”,
“类型”:“indexfolder”
},
“832f9d4e-297e-40e9-9189-75ce3b86341a”:{
“id”:“832f9d4e-297e-40e9-9189-75ce3b86341a”,
“名称”:“文件夹”,
“类型”:“文档文件夹”
},
“86fee1ce-21cd-4948-bf9d-a6c81b897a0e”:{
“id”:“86fee1ce-21cd-4948-bf9d-a6c81b897a0e”,
“名称”:“文件夹”,
“类型”:“文档文件夹”
}
}

每当我在这个数组中推新数组时。键自动排序。我不想在密钥库中对数组进行排序。我需要在数组顶部添加新的按键项。

我建议您保留两个参考: 1阵列(列表) 1对象(键、值)

对象(key->val)无法保持元素的插入顺序(如果一个乌托邦式的新浏览器实现想要按降序排列(出于任何原因),您的代码对它来说都是合理的)

因此,在填充对象的同时,也在数组中按下元素键。 当您想要迭代时,使用数组按顺序进行迭代(而且速度更快)

myObject={};
myArray=[];
/**填充**/
for(myData中的变量x){
myObject[myData[x]。键]=myData[x]。值;
myArray.push(myData[x].key);
}
/**迭代**/
对于(变量y=0;y

关于

什么键排序?你的意思是当你使用一些渲染时,它会对它进行排序?首先,那是一个对象,而不是数组。其次,也是更重要的,您不能对对象进行排序。因此,对于现有的数据结构,您试图做的是不可能的,因为您没有数组,只有一个对象。对象通常未排序,或按字母顺序排序。对此,您无能为力,只能将对象更改为实际的数组。是的,它是对象,但在添加新记录时它会自动排序。键排序菜单:object={key1{“”,“”},key2{“”,“”},key3{“”,“”}。键中有唯一的id。无法对对象进行排序。属性的显示顺序完全是任意的。如果需要保证顺序,则需要修改逻辑以处理对象数组。
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
}