2017-09-01 53 views
-2

我還沒有開始編碼,因爲我想收集我的想法並找出解決此問題的最佳方法。插入,刪除和添加對象到數組中

我有一個排序的數組,其中包含具有類別和名稱的對象。

  • 該數組按類別排序(類別爲A,B和C)。 A將始終放置在B和B總是放在C之前。
  • 確定類別後,它也將按名稱排序。 (A類蘋果將在A類香蕉之前)

這是我想到的方法。

有一個庫存類,其中有4個數組。數組將按類別拆分(數組A,數組B,數組C和組合數組)。這是這樣的,當類別被選中時,它將轉到正確的數組,並根據名稱將內容放入正確的位置。而不是檢查1巨大的數組,它檢查一個更小的數組。當對象被添加時,它會將數組a和b添加到組合數組中。

這將在js編碼。我寫這篇文章是因爲我想知道我是否處於正確的軌道上,或者是否有更好的邏輯來按類別和名稱對數組進行排序。

+4

您必須至少提供一些自己的代碼。在詢問是否有更好的方法之前嘗試一下,典型的是,如果你能夠使其發揮作用,並且這不是一個巨大的努力,那麼你就處於正確的軌道上。 –

回答

1

您可以通過or運算符鏈接分類。通過JS短路,那將是非常有效的,例如:

yourArray.sort((a,b)=> 
     a.category.localeCompare(b.category) 
    || a.name.localeCompare(b.name) 
); 
0

富勒多個組具有相同比較機制,像localeCompare,你可以使用與鍵的數組。這很容易維護。

var keys = ['category', 'name']; 

array.sort(function (a, b) { 
    var v; 
    return keys.some(function (k) { 
     return v = a[k].localeCompare(b[k]); 
    }) && v; 
});