2015-10-05 192 views
0

我知道這個問題已經回答了很多,但我似乎無法找到我需要的確切答案。jQuery排序對象數組

我有一個數據的對象,看起來像:

{Tom: Array, Ant: Array, Ben: Array} 

我想這個排序,使它看起來像:

{Ant: Array, Ben: Array, Tom: Array} 

是否有一個方便的jQuery的方法來做到這一點?

謝謝。

+2

如果它是您的語言和「{}」所暗示的對象,那麼這些鍵沒有順序並且無法排序。用一個真實的代碼示例來闡述你想要解決的問題。 –

回答

0

你可以不用jQuery的:

var unorderedObj = { Tom: [], Ant: [], Ben: [] }; 

var keys = Object.keys(unorderedObj); 

var sortedKeys = keys.sort(); // [ 'Ant', 'Ben', 'Tom' ] 

var sortedObj = {};  

sortedKeys.forEach(function(k) { 
    sortedObj[k] = unorderedObj[k] 
}) 

console.log(sortedObj); // { Ant: [], Ben: [], Tom: [] } 
+0

@Downvoter:你能解釋爲什麼downvote?這個答案提供了一個解決方案的OP – Daniel

+0

嗯 - 所以這個作品 雖然(一個細微的差異)我的新排序結果看起來像:[{my data ..}] 即它在一個數組 – userMod2

+0

@ userMod2:我已經做了一個編輯,以準確地適合你需要的東西 – Daniel

-1

這裏是一個JavaScript/jQuery函數來排序鍵的對象:

function sortObj(o){// where o is the raw object 
    var keys = Object.keys(o); 
    var sorted = keys.sort(); 

    var obj = {}; 
    $.each(sorted, function(i, key) { 
     obj[key] = o[key]; 
    }); 
    return obj; 
} 

用途爲:

var rawobj = {Tom: [], Ant: [], Ben: []}; 
var sortedobj = sortObj(rawobj); 
+0

Downvoter:OP想要做的是一個有效的需求以編程方式。如果有解決方案能夠有效實現這一目標,我相信它對每個人都有用,而不是無聲的倒退。 –

1

Javascript對象的屬性不能被排序,除非你想創建一個包含排序中該對象屬性的數組/列表d期限。