第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按帶有日期值的單鍵對象數(shù)組進行排序

按帶有日期值的單鍵對象數(shù)組進行排序

蝴蝶刀刀 2019-07-19 16:08:14
按帶有日期值的單鍵對象數(shù)組進行排序我有一個帶有幾個鍵值對的對象數(shù)組,我需要根據(jù)‘update_at’對它們進行排序:[     {         "updated_at" : "2012-01-01T06:25:24Z",         "foo" : "bar"     },     {         "updated_at" : "2012-01-09T11:25:13Z",         "foo" : "bar"     },     {         "updated_at" : "2012-01-05T04:13:24Z",         "foo" : "bar"     }]最有效的方法是什么?
查看完整描述

3 回答

?
子衿沉夜

TA貢獻1828條經(jīng)驗 獲得超3個贊

你可以用Array.sort.

下面是一個(未經(jīng)測試的)示例:

arr.sort(function(a, b){
    var keyA = new Date(a.updated_at),
        keyB = new Date(b.updated_at);
    // Compare the 2 dates
    if(keyA < keyB) return -1;
    if(keyA > keyB) return 1;
    return 0;});


查看完整回答
反對 回復 2019-07-19
?
胡說叔叔

TA貢獻1804條經(jīng)驗 獲得超8個贊

我在這里已經(jīng)回答了一個類似的問題:對對象數(shù)組進行排序的簡單函數(shù)

對于這個問題,我創(chuàng)建了一個小函數(shù),它可以做您想做的事情:

function sortByKey(array, key) {
    return array.sort(function(a, b) {
        var x = a[key]; var y = b[key];
        return ((x < y) ? -1 : ((x > y) ? 1 : 0));
    });}


查看完整回答
反對 回復 2019-07-19
?
牧羊人nacy

TA貢獻1862條經(jīng)驗 獲得超7個贊

這個Array.Sort()方法對數(shù)組的元素進行排序,并返回該數(shù)組。小心Array.Sort()因為它不是不變..對于不可變的排序使用不可變排序.

此方法是使用當前的updated_atISO格式。我們用new Data(iso_string).getTime()若要將ISO時間轉(zhuǎn)換為Unix時間戳,請執(zhí)行以下操作。Unix時間戳是一個我們可以對其進行簡單計算的數(shù)字。我們減去第一個和第二個時間戳,結(jié)果是;如果第一個時間戳大于第二個時間戳,返回數(shù)將是正數(shù)。如果第二個數(shù)字大于第一個,則返回值為負數(shù)。如果兩者相同,則返回為零。這完全符合內(nèi)聯(lián)函數(shù)所需的返回值。

ES6:

arr.sort((a,b) => new Date(a.updated_at).getTime() - new Date(b.updated_at).getTime());

ES5:

arr.sort(function(a,b){ 
 return new Date(a.updated_at).getTime() - new Date(b.updated_at).getTime();});

如果你改變了updated_at要成為Unix時間戳,您可以這樣做:

ES6:

arr.sort((a,b) => a.updated_at - b.updated_at);

ES5:

arr.sort(function(a,b){ 
 return a.updated_at - b.updated_at;});

在這篇文章發(fā)表時,現(xiàn)代瀏覽器不支持ES6。要在現(xiàn)代瀏覽器中使用ES6,請使用巴貝爾將代碼轉(zhuǎn)換到ES5。預期瀏覽器支持ES6在不久的將來。

Array.Sort()是否應(yīng)將三種可能的結(jié)果之一的返回值重新計算在內(nèi):

  • 正數(shù)(第一項>第二項)
  • 負數(shù)(第一項<第二項)
  • 如果兩項相等,則為0。

注意,內(nèi)聯(lián)函數(shù)的返回值可以是任何正數(shù)或負數(shù)。Sort()不關(guān)心返回號是什么。它只關(guān)心返回值是正、負還是零。

對于不可變的排序:(例如在ES6中)

const sort = require('immutable-sort');const array = [1, 5, 2, 4, 3];const sortedArray = sort(array);

你也可以這樣寫:

import sort from 'immutable-sort';const array = [1, 5, 2, 4, 3];const sortedArray = sort(array);

從您看到的導入是一種在ES6中包含javascript的新方法,并使您的代碼看起來非常干凈。我個人的最愛。

不可變排序不會改變源數(shù)組,而是返回一個新數(shù)組。使用const推薦用于不可變數(shù)據(jù)。


查看完整回答
反對 回復 2019-07-19
  • 3 回答
  • 0 關(guān)注
  • 466 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號