【发布时间】:2019-04-12 01:07:36
【问题描述】:
大家好,我是新手,我尝试使用 lodash 对对象数组进行排序和过滤,我不知道是正确的解决方案,但我知道可行,我有一些这样的数组...
contactList =[ {
"ChatCount": 2, "chatid": 10000413, "createdon": "2018-10-25T13:49:50.9900000", "isArchive": 0, "isOnline": false ,
"members":[{"id": "60259166", "lastseen": 15261867,"name": "la", "picture": "/la/5285871.250.jpg"}],
"message": "",
"message_cnt": 1,
"messageid": 1,
"newest_message": "2018-10-25T13:49:50.9900000",
"oldest_message": "2018-10-25T13:49:50.9900000",
"received_cnt": 0,
"sentby": [{"id":59,"name":"betsynray","picture":"/betsynray/2884P1010025250.jpg","lastseen":1164}],
"unread_cnt": 1
},
{
"ChatCount": 2, "chatid": 61247987, "createdon": "2018-10-25T13:49:14.9170000", "isArchive": 0,"isOnline": true,
"members":[{"id": 61247987, "lastseen": 15318187,"name": "li", "picture": "/li/4705502.250.jpg"}],
"message": "good",
"message_cnt": 2,
"messageid": 2,
"newest_message": "2018-10-31T10:20:29.5000000",
"oldest_message": "2018-10-25T13:47:59.6700000",
"received_cnt": 0,
"sentby": [{"id":59,"name":"mm","picture":"/mm/2884P1010025250.jpg","lastseen":1164}],
"unread_cnt": 3
}
]
他们我想过滤 (sentBy.lastseen > 18000) 并使用 (newest_message) 按最近日期排序>
contactList.sort(function (o) { return moment(o.NEWEST_MESSAGE).format('YYYYMMDD')}).reverse();
这个工作,但现在我也尝试使用 lastseen 过滤,我尝试使用 lodas 和 momentjs 进行类似的操作
function any() {
var status = _(contactList)
.filter(function (a) { return a.MEMBERS[0].lastseen > 1800000 })
.sort(function (o) { return moment(o.NEWEST_MESSAGE).format('YYYYMMDD')}).reverse() // sort names
.value();
return status;
}
latseen 过滤器运行良好,但没有按最近日期排序,我做错了什么有人可以帮助我吗?提前非常感谢你
【问题讨论】:
标签: javascript jquery arrays momentjs lodash