2010-08-16 51 views
0

請原諒我,但我知道js的基礎知識以及如何編寫/調用一個基本的函數,但在這種情況下,我試圖匹配一個alpha類別的類別列表從數據庫中匹配我的下面指定的類別的集合(非alpha)順序(這是代碼建議供其他用戶使用的問題,我問了如何映射返回類別的順序)。但是,我無法弄清楚如何將這個人的代碼答案集成到我自己的代碼中。Javascript實現的問題:如何使這個函數顯示值

只是看到它針對另一個示例列表(模仿我將從數據庫中抓取的內容)以及如何在switch case語句中調用它以將我的html包裝在類別名稱中並將它們返回到網頁中我想要的映射順序會有很大的幫助。很抱歉,如果它變得很明顯。我正在努力學習當我遇到這些問題時我能做些什麼。謝謝!

var categories = [ 'F', 'C', 'A1', 'A2', 'A3' ].map(function (category) { 
    return businesses.filter(function (business) { 
     return business.category === category; 
    }); 
}); 

回答

2

給出的代碼看起來最有可能使用具有一些有用的功能jQuery JavaScript庫是如map()用於操縱陣列。

該代碼假定您有一個jQuery對象/數組businesses,其中包含您需要訂購的業務。如果我們從外部讀取它

  1. 將數組中的每個項依次傳遞給map函數。 map函數使用一個函數來說明每個項目應該如何映射。
  2. 匿名函數function (category)...接受一個參數,在此迭代中傳遞給它的特定項目將返回映射結果。
  3. 返回的結果是調用businesses上的過濾器的函數,並向它傳遞一個函數來說明應如何過濾企業。
  4. 匿名函數function (business)...接受參數,傳遞給它的特定項作爲businesses進行迭代,並返回與外部函數中作用域類型相匹配的那些參數。
  5. 最終的結果是按類別排列[ 'F', 'C', 'A1', 'A2', 'A3' ]

訂購項目的數組如果我們回到original problem,你需要訂購基於客戶的喜好類別清單。讓我們創建一個對象文本映射訂貨

var map = { 
    F : 5, 
    C : 3, 
    A1 : 1, 
    A2 : 4, 
    A3 : 2 
} 

我們可以使用這個地圖使用sort方法

var array = ['F', 'C', 'A1', 'A2', 'A3']; 

array.sort(function(a,b) { 
    return map[a] - map[b]; 
}); 

這將返回美國["A1", "A3", "C", "A2", "F"]

+0

非常感謝拉斯訂購的陣列。事實證明,這是最大的缺陷。在最初的問題中,聽起來像我可以在沒有任何使用庫的情況下實現他們的答案......並且我花了一個小時琢磨了一下,並且被我的谷歌搜索在過濾器和地圖功能等方面進一步搞糊塗了。無論如何,這是明確的,簡潔的,我現在要求稍微少一點尷尬。這在數組映射中也是一個很好的教訓!乾杯! – Lynn 2010-08-16 23:08:02

相關問題