javascript - 如何过滤对象数组?

标签 javascript

我有一组从 Web 服务中提取的对象,如下所示。

{ 
  ArticleID: "ABC123", 
  Region: "US", 
  PubTypeID: "EO", 
  PubType: "Europe Order", 
  Created: "01/01/2013", 
  Scheduled: "03/02/2013"
} 

ArticleID、Region 和 PubTypeID 组成一个复合键。数据源是一张表,无法更改,但我需要获取唯一的项目来显示类似仪表板的界面。因此,显示唯一的文章ID,但将文章分组在它们下面。界面应该看起来像这样。

ArticleID      Status
----------------------
ABC123          Scheduled
    Region:US       Scheduled: 02/02/2013
    Region:JP       Scheduled: 05/02/2013
    Region:OE       Scheduled: 03/02/2013
    Region:EU       Scheduled: 04/02/2013
ABC456          Ready to Schedule          
    Region:US       
    Region:US       
    Region:US       
ABC789          Sent
    Region:EU       Sent On: 01/02/2013
    Region:EU       Sent On: 01/02/2013
    Region:EU       Sent On: 01/02/2013
    Region:EU       Sent On: 01/02/2013

状态由日期决定。我还面临一个困境,如果一篇文章下的一项有日期而另一项没有,状态会是什么?

如果数据被标准化,我在这里不会有任何问题,因为我可以进行多个选择并构建输出,但我只有一个平面结果集,因此需要在 Javascript 中进行“选择”。

有人可以帮助我如何在 Javascript 中做到这一点吗?

最佳答案

为了将这些数据构建到您所描述的表中,我首先会组织数据,使其与您想要执行的操作相匹配。因此,我不会遍历返回的数据并将其转换为:

{ArticleID: "ABC123", 
Status: "Scheduled", 
Articles: { 
  ArticleID: "ABC123", 
  Region: US, 
  PubTypeID: "EO", 
  PubType: "Europe Order", 
  Created: "01/01/2013", 
  Scheduled: "03/02/2013"
  },{ 
  ArticleID: "ABC234", 
  Region: US, 
  PubTypeID: "EO", 
  PubType: "Europe Order", 
  Created: "01/01/2013", 
  Scheduled: "03/02/2013"
  }
}

然后根据这个结构建表。您需要在函数中进行一些计算来确定状态。我对这个问题的理解不足以给你一个具体的答案,但看起来所有常见的文章 ID 都具有相同的状态,因此在重组对象时可以忽略这一点,并在构建表时插入。

如果您对服务器端代码有任何控制权,那么最好在将其传递给客户端之前完成此对象重组工作。

关于javascript - 如何过滤对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14441656/

相关文章:

Javascript更改位置href并单击某个按钮

javascript - 将输入从 window.open 传递到父页面

javascript - jquery修改url获取参数

javascript - 同一父 div 中具有相同类的两个 div 显示不同

javascript - 在 JavaScript 中添加 2 个函数的输出问题

javascript - 脚本标签在 SartajPHP 临时文件中不起作用

javascript - 如何在 Angular 2 项目中使用 javascript 库

javascript - 在回调函数中访问全局变量

javascript - 使用 jQuery 为图像序列制作动画的 gif 动画替代方案

javascript - 带按钮的 AngularJS 输入指令