如果我有對象的列表:如何按日期升序排序對象?
var objectList= LIST_OF_OBJECT;
每個對象在列表中包含三個屬性: 「名」, 「日期」, 「性別」
如何通過「date」屬性升序來排序列表中的對象?
(以下簡稱 「日期」 屬性包含像字符串值 「2002年8月29日21:15:31 + 0500」)
如果我有對象的列表:如何按日期升序排序對象?
var objectList= LIST_OF_OBJECT;
每個對象在列表中包含三個屬性: 「名」, 「日期」, 「性別」
如何通過「date」屬性升序來排序列表中的對象?
(以下簡稱 「日期」 屬性包含像字符串值 「2002年8月29日21:15:31 + 0500」)
的Array.sort
方法接受排序函數,它接受兩個元素作爲參數,並且應該返回:
。
objectList.sort(function (a, b) {
var key1 = a.date;
var key2 = b.date;
if (key1 < key2) {
return -1;
} else if (key1 == key2) {
return 0;
} else {
return 1;
}
});
你很幸運的是,在日期格式您提供,那是另一個日期之前的日期也比<
日期使用字符串比較時。如果不是這種情況下,你必須將字符串轉換爲日期第一:
objectList.sort(function (a, b) {
var key1 = new Date(a.date);
var key2 = new Date(b.date);
if (key1 < key2) {
return -1;
} else if (key1 == key2) {
return 0;
} else {
return 1;
}
});
如果你的對象有一個字符串領域內的日期信息:
yourArray.sort(function(a, b) { return new Date(a.date) - new Date(b.date) })
或者,如果他們有它日期內領域:
yourArray.sort(function(a, b) { return a.date - b.date })
祝賀您在這裏獲得唯一理智的答案。 – Tom
你可以試試:
<script src="https://cyberknight.000webhostapp.com/arrange.js">
var a =[-1,0,5,4,3,2,6,1,1];
var b = totzarrange(a)
console.log(b);
</script>
yourArray.sort(function(a, b) {
a = new Date(a.date);
b = new Date(b.date);
return a >b ? -1 : a < b ? 1 : 0;
})
我會通過與已經被解析效率之日起的每個值定義一個新的領域開始。 – Serabe
如果它不是一個對象列表,而是一個包含對象的對象,並且我想對對象內的對象進行排序呢? – Leem
@利姆:任何標準都沒有描述什麼順序對象成員應該列舉在(引文需要)。您應該將該對象轉換爲數組。 – Matt