如何根据其他数组中的特定顺序对对象集合进行排序(Angular、Lodash):
var list = [{name: "Name 10"},
{name: "Name 20"},
{name: "Name 321"},
{name: "Name 41"}];
var orderList = ["Name 20", "Name 41", "Name 321", "Name 10"];
//result: {name: "Name 20"}, {name: "Name 41"},{name: "Name 321"},{name: "Name 10"}]
我需要将订单从orderList
应用到list
最佳答案
AngularJS 支持按 orderBy 排序筛选。我们需要传递表达式函数来过滤其他数组。查看下面的代码:
HTML:
{{list|orderBy:order}}
Javascript:
$scope.list = [{name: "Name 1"},
{name: "Name 2"},
{name: "Name 3"},
{name: "Name 4"}];
$scope.orderList = ["Name 2", "Name 1", "Name 3", "Name 4"];
$scope.order = function(predicate) {
return $scope.orderList.indexOf(predicate.name);
};
为了更好地理解,我做了 JSFiddle
关于javascript - Angular : sort collection by list of values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31696510/