过滤并减少JavaScript中的对象

pke*_*ove -1 javascript

我不确定如何执行此操作,我有一个包含多个对象的对象。看起来像这样:

object {
    apps: {
       apps1: {
           date: "2017-07-05T17:13:53.956Z",
           status: false
              }
          },
       apps2: {
            date: "2017-07-11T15:15:39.027Z",
            status: false
              },
       apps3: {
            date: "2017-07-11T15:36:33.063Z",
            status: true
              }
       }
Run Code Online (Sandbox Code Playgroud)

现在我想先按日期对它们进行排序,这是可行的:

function getAppStatus(user) {
  let newArr = Object.keys(user.apps).reduce(function(a, b) {
    return user.apps[a].date > user.apps[b].date ? a : b;
  });
Run Code Online (Sandbox Code Playgroud)

但我只想对具有status === false基本特征的应用程序进行排序,因此我想在状态为true时删除apps3,然后按日期对其余应用程序进行排序。

有任何想法吗 ?

谢谢 !

Nin*_*gno 5

尝试类似

var newArr = Object.keys(user.apps)
      // convert the object to an array by key.
      .map(function (key) { return user.apps[key]; })
      // get apps with status === false.
      .filter(function (app) { return !app.status; })
      // sort by date. Since the date is stored as a string, use localeCompare.
      .sort(function (a1, a2) { return a1.date.localeCompare(a2.date)); });
Run Code Online (Sandbox Code Playgroud)