Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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 Orderby字典式数据结构(按值)_Javascript_Angular_Typescript_Angular5 - Fatal编程技术网

Javascript Orderby字典式数据结构(按值)

Javascript Orderby字典式数据结构(按值),javascript,angular,typescript,angular5,Javascript,Angular,Typescript,Angular5,我试图按值对对象数据结构进行排序。 {苹果:1,梨:85,橘子:24,蓝莓:18} 我想实现按DESC order中的值重新排序。我不认为有一个方法可以这样做,即使这个对象被包装在一个数组中,但我想检查 我的另一个想法是将键值对分离为两个单独的数组。然后循环值数组,搜索最大值并捕获该点的索引,该特定索引应与键数组匹配。然后我可以将键/值对移动到第三个/单独的数组中,按最大值保持顺序。然后根据捕获的索引号,从键和值数组中弹出 如果有更好的方法,请随意分享?对象的键未排序,因此您将无法仅使用对象实现

我试图按值对对象数据结构进行排序。 {苹果:1,梨:85,橘子:24,蓝莓:18}

我想实现按DESC order中的值重新排序。我不认为有一个方法可以这样做,即使这个对象被包装在一个数组中,但我想检查

我的另一个想法是将键值对分离为两个单独的数组。然后循环值数组,搜索最大值并捕获该点的索引,该特定索引应与键数组匹配。然后我可以将键/值对移动到第三个/单独的数组中,按最大值保持顺序。然后根据捕获的索引号,从键和值数组中弹出

如果有更好的方法,请随意分享?

对象的键未排序,因此您将无法仅使用对象实现所需

但是,如果使用阵列,则可以使用:

constMyArray=[{apple:1},{pear:85},{orange:24},{blueberry:18}] myArray.sorte1,e2=>Object.valuese2[0]-Object.valuese1[0]
logmyArrayDictionaries哈希表、映射等通常不按顺序排列,这是哈希表通过键或值实现的固有方式。您要做的是将值复制到一个具有顺序的数组中,然后如果值是非标量的,则使用自定义比较器对其进行排序。我得到以下错误:“e1:any,e2:any=>boolean”类型的参数不能分配给“a:any,b:any=>number”类型的参数。类型“boolean”不可分配给类型“number”。这是一个包含对象的数组示例::[{assailing:1},{haters:1},{trump:10}]此错误是否由键位置的数字引起的?例如,我的示例中没有提到一些值,如[{2018:10}、{2:14}、{men:3}]等等..我编辑了我的答案以更正comparison函数。问题是Array.sort需要x,y=>number,而不是x,y=>boolean。那么,它是否循环数组,并且每个向右的时间值都大于向左的时间值,并将其置于上方?