我在Ruby中有以下數據結構(其中鍵是字符串,值是數組)。跨多個陣列的一致排序
X = { "id": [2, 4, 1], "name": ["a", "b", "c"], "time": [1, 0, 2]}
我想排序與字段「時間」相關聯的數組,但我希望所有其他數組以一致的方式排序。例如:排序後,X應該看起來像這樣。
X = {"id": [4, 2, 1], "name": ["b", "a", "c"], "time": [0, 1, 2]}
我以一種非常醜陋的方式解決了這個問題(因爲我不知道該怎麼做)。我所做的就是創建一個時間副本,然後編號和時間,然後對其進行排序,然後壓縮名稱和time_copy並對其進行排序。然後解壓縮。我很確定這是一個可怕的方式來做到這一點。其他人能教我一個更好的方法嗎?
它應該排序成b,a,然後c? –
是的。如果您排序時間,並且您按照相同的順序對名稱數組進行排序,則應該得到b,a,c。 – sga001
哦,我現在看到。這個數據_really_應該位於頂層數組中,下面有哈希值。 '[{id:2,name:'a',time:1},...]'。它將變得更有意義,並且更容易合作。 –