有一個具有這種結構的數據:Javascript:如何將對象數組轉換爲具有排序的唯一數組的對象?
$input = [ { animal: 'cat', name: 'Rocky', value: 1 },
{ animal: 'cat', name: 'Spot', value: 2 },
{ animal: 'dog', name: 'Spot', value: 3 } ];
需要儘可能最快的方法,用於轉換爲如下格式:
$output = { animal: [ 'cat', 'dog' ],
name: [ 'Rocky', 'Spot' ],
value: [ 1, 2, 3 ] };
輸出應具有等於每個鍵的鍵在從每個對象輸入。輸出值應該是具有排序的唯一值的數組。我發現了幾種使用嵌套循環的方法,但比我想要的要慢。在輸入數組中有30,000個元素,每個對象有8個鍵,我能夠做的最好的事情是Chrome中的300ms。想下降到100ms。有沒有更快的方法使用地圖或縮小?
爲什麼不發表你目前有什麼?看起來像將數值推入數組一樣簡單,然後在最後刪除/排序。 – Tejs
它始終是時空權衡和效率。你可以交易空間的時間。 –
請記住,$不是JavaScript--這是一個PHP變量。嵌套循環是最好的你會得到的 - 這是你所有的。你爲什麼要改變這種結構?投入看起來似乎更加合理和可用。 – Bradley