我不确定如何执行此操作,我有一个包含多个对象的对象。看起来像这样:
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,然后按日期对其余应用程序进行排序。
有任何想法吗 ?
谢谢 !
尝试类似
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)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |