javascript - 根据日期属性对 javascript 对象进行排序

标签 javascript angularjs arrays sorting

我有一个对象数组,其中每个对象都有一个日期属性。我想将具有相同日期的所有对象移动到一个数组中,并创建与不同日期值一样多的数组。迭代数组并对数组进行排序的最佳方法是什么?使用 Angular 数组函数就可以了。

最佳答案

我会混合使用 orderby $filter 和简单的 for 数组。 让我们通过一个例子来看看:

//example values..
var objects = [{exampleProp: undefined, date:new Date(3,1,1970) }, 
              {exampleProp: undefined, date:new Date(2,1,1970)}, 
              {exampleProp: undefined, date:new Date(2,1,1970)}, 
              {exampleProp: undefined, date:new Date(1,1,1970)}];


//ordering your master array by date property..
objects = $filter('orderBy', objects, 'date')($scope);

//grouping by date your master object..
var dictionary = {};
objects.forEach(function(object){
   if(dictionary[object.date] == undefined)
      dictionary[object.date] = [];

    dictionary[object.date].push(object);
});

//transforming your dictionary to an array of array....
var objectsByDate = [];
for(var date in dictionary)
  objectsByDate.push(dictionary[date]);

参见$filterorderby文档以了解如何通过对象属性对其进行排序

关于javascript - 根据日期属性对 javascript 对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39318194/

相关文章:

java - 云数据库 : RestAPI with specific parameter

python - 我想使用 python 中的加法函数从两个长度为 n 的数组创建一个 nxn 矩阵

c# - 以下代码的输出 : Why would it return rainyday[1] = Sunday and not friday?

java - 简单的数组复制问题

javascript - 允许 angularjs 中的字母数字指令使用破折号

JavaScript JSON 语法错误 : Unrecognized Expression

javascript - 如何获取事件的textContent长度

angularjs - 即使多个 Angular 客户端失去了与中央服务器的连接,它们如何能够在它们之间进行通信?

javascript - React Native 有全局作用域吗?如果不是,我该如何模仿呢?

javascript - 我可以在 deno 中异步多次写入文件吗?