实现在Angular2中对对象数组进行排序

时间:2017-01-13 16:59:57

标签: javascript sorting angular

我正在使用Angular2,我想根据对象中的属性对对象数组进行排序。由于空间的限制,我需要对这些对象进行分页。所以,我不想在NgFor的上下文中使用Pipe。我只想在渲染到DOM之前实现一个排序函数。如果有人有一些信息,你能给一些指导吗?我发现只是使用PipeTransform。所以,我问你。

2 个答案:

答案 0 :(得分:1)

您可以使用underscorejs _.sortBy方法。

代码示例:

_.sortBy(arr, function(o) { return o.start.dateTime; })

答案 1 :(得分:1)

尝试JS的array.sort()

  

示例arr.sort()

var fruit = ['cherries', 'apples', 'bananas'];
fruit.sort(); // ['apples', 'bananas', 'cherries']
  

示例arr.sort(compareFunction)

var items = [
  { name: 'Edward', value: 21 },
  { name: 'Sharpe', value: 37 },
  { name: 'And', value: 45 },
  { name: 'The', value: -12 },
  { name: 'Magnetic', value: 13 },
  { name: 'Zeros', value: 37 }
];

// sort by value
items.sort(function (a, b) {
  return a.value - b.value;
});

// sort by name
items.sort(function(a, b) {
  var nameA = a.name.toUpperCase(); // ignore upper and lowercase
  var nameB = b.name.toUpperCase(); // ignore upper and lowercase
  if (nameA < nameB) {
    return -1;
  }
  if (nameA > nameB) {
    return 1;
  }

  // names must be equal
  return 0;
});