Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 角度ng重复(键,值)|按值排序_Javascript_Angularjs_Ng Repeat - Fatal编程技术网

Javascript 角度ng重复(键,值)|按值排序

Javascript 角度ng重复(键,值)|按值排序,javascript,angularjs,ng-repeat,Javascript,Angularjs,Ng Repeat,是否可以按如下方式订购阵列: ng-repeat="(key, value) in sets | orderBy: value['ordering']" 这是我的阵列: [{ "item 1": { "type": "text", "value": "1", "ordering": 1 }, "item 2": { "type": "text", "value": "4", "ordering": 3 }, "item 3": { "type": "text",

是否可以按如下方式订购阵列:

ng-repeat="(key, value) in sets | orderBy: value['ordering']"
这是我的阵列:

[{
"item 1": {
  "type": "text",
  "value": "1",
  "ordering": 1
},
"item 2": {
  "type": "text",
  "value": "4",
  "ordering": 3
},
"item 3": {
  "type": "text",
  "value": "8",
  "ordering": 2
}
}]
它应该输出:
项目1、项目3、项目2


编辑:我也需要钥匙

如果您不需要钥匙,您可能不想尝试一下:


您误解了数组的含义

数组由一个大对象组成,不能在javascript中对对象进行排序。修复结构,使您拥有多个对象的数组

[{
  "item": 1,
  "type": "text",
  "value": "1",
  "ordering": 1
}, {
  "item": 2,
  "type": "text",
  "value": "4",
  "ordering": 3
}, {
  "item": 3,
  "type": "text",
  "value": "8",
  "ordering": 2
}]
然后您可以使用常规阵列中继器

ng-repeat="set in sets | orderBy: 'ordering'"

谢谢你的帮助,但我不能改变结构。您知道定制过滤器是否可以实现这一点吗?2选择,将数据映射到数组或使用其他答案中建议的实用程序。映射到数组并不困难,是的,您可以使用过滤器。过滤器实际上是任何函数。obj in(map | myMapToArray)我需要使用键。角度文档对此非常清楚。“您需要注意,JavaScript规范没有定义为对象返回的键的顺序”,“如果不需要,建议的解决方法是将对象转换为数组,该数组在提供给
ngRepeat
之前按您喜欢的顺序排序。”