2017-04-05 56 views
0

我需要對對象中的日期進行排序(作爲鍵)。在多級對象中排序日期

我認爲我應該將它轉換爲一個對象數組,然後我必須將其轉換爲一個對象,但似乎太困難了。這是多目標的數據:

{ 
    "2017-02-18": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 13.4, 
     "provider": 13.04 
    } 
    }, 
    "2017-02-14": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 5.4, 
     "provider": 5.04 
    } 
    }, 
    "2017-02-13": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 1.4, 
     "provider": 1.04 
    } 
    }, 
    "2017-02-17": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 21.4, 
     "provider": 21.04 
    } 
    }, 
    "2017-02-15": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 44.4, 
     "provider": 44.04 
    } 
    }, 
    "2017-02-16": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 56.4, 
     "provider": 56.04 
    } 
    } 
} 

那種我需要一個對象對這個結果後:

{ 
    "2017-02-13": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 1.4, 
     "provider": 1.04 
    } 
    }, 

    "2017-02-14": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 5.4, 
     "provider": 5.04 
    } 
    }, 
    "2017-02-15": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 44.4, 
     "provider": 44.04 
    } 
    }, 
    "2017-02-16": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 56.4, 
     "provider": 56.04 
    } 
    }, 
    "2017-02-17": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 21.4, 
     "provider": 21.04 
    } 
    }, 
    "2017-02-18": { 
    "prod_work": { 
     "product": 0, 
     "product_type": 0 
    }, 
    "prod_work1": { 
     "tax": 13.4, 
     "provider": 13.04 
    } 
    } 
} 

感謝所有的幫助!

+0

見http://stackoverflow.com/questions/5467129/sort-javascript-object-by-key。無法對對象鍵進行排序。你可以對鍵進行排序。 – dev8080

回答

0

援引this topic,我添加了日期排序功能:

var datesObj = { 
 
    "2017-02-18": { 
 
    "prod_work": { 
 
     "product": 0, 
 
     "product_type": 0 
 
    }, 
 
    "prod_work1": { 
 
     "tax": 13.4, 
 
     "provider": 13.04 
 
    } 
 
    }, 
 
    "2017-02-14": { 
 
    "prod_work": { 
 
     "product": 0, 
 
     "product_type": 0 
 
    }, 
 
    "prod_work1": { 
 
     "tax": 5.4, 
 
     "provider": 5.04 
 
    } 
 
    }, 
 
    "2017-02-13": { 
 
    "prod_work": { 
 
     "product": 0, 
 
     "product_type": 0 
 
    }, 
 
    "prod_work1": { 
 
     "tax": 1.4, 
 
     "provider": 1.04 
 
    } 
 
    }, 
 
    "2017-02-17": { 
 
    "prod_work": { 
 
     "product": 0, 
 
     "product_type": 0 
 
    }, 
 
    "prod_work1": { 
 
     "tax": 21.4, 
 
     "provider": 21.04 
 
    } 
 
    }, 
 
    "2017-02-15": { 
 
    "prod_work": { 
 
     "product": 0, 
 
     "product_type": 0 
 
    }, 
 
    "prod_work1": { 
 
     "tax": 44.4, 
 
     "provider": 44.04 
 
    } 
 
    }, 
 
    "2017-02-16": { 
 
    "prod_work": { 
 
     "product": 0, 
 
     "product_type": 0 
 
    }, 
 
    "prod_work1": { 
 
     "tax": 56.4, 
 
     "provider": 56.04 
 
    } 
 
    } 
 
}; 
 

 
var datesArr =[]; 
 
for(var dateKey in datesObj) 
 
    datesArr.push(dateKey); 
 
    
 
datesArr.sort(function(dt1, dt2){ 
 
     return (new Date(dt1)).getTime() -(new Date(dt2)).getTime(); 
 
    }); 
 
    
 
    for (i = 0; i < datesArr.length; i++) { 
 
    
 
     alert(datesArr[i] + ':' + datesObj[datesArr[i]]); 
 
}

+0

感謝您的幫助;)但如何返回相同的對象(而不是警報)? – Diegs

+0

請在我的回答中閱讀引用的鏈接。無法對javascript對象鍵進行排序。我剛剛提供了一個排序日期的答案,這些日期是對象鍵,然後您可以決定如何處理它們。我認爲你應該使用排序後的鍵來訪問它們的值。 – dev8080