我正在構建一個相對簡單的測驗,已經建立了所有的標記和表單邏輯,現在提交我得到一組答案A/B/C/D),我需要將其與各種標準組合進行比較比較測驗答案的陣列(A/B/C/D)與條件組合
以下是標準的樣子。爲了增加複雜性,我試圖設置它以允許各種答案,在字符串中用/
分隔符表示。下面是代碼的簡化表示,假設我在表單提交處理程序中工作,並且results
是我從無線電輸入組獲得的表單數據。
var criteria = [
{
combination: ['B', 'B', 'A/B', 'C', 'A/B/C/D'],
type: 'Type A'
},
{
combination: ['B', 'A/B/C/D', 'A/B', 'A/B/D', 'A/B/C/D'],
type: 'Type B'
},
{
combination: ['D', 'A', 'C', 'A/B', 'A/B/C/D'],
type: 'Type C'
}
]
// this data comes back from form
var results = ['B', 'A', 'A', 'D', 'C'];
function compareResults(results, criteria) {
$.each(results, function (i, answer) {
// ?
})
}
compareResults(results, criteria)
我有一個關於如何通過和比較多維對象/數組的brainfart。我知道我需要一個for .. in
循環,到.split('/')
等。任何幫助表示讚賞。
編輯
如果它可以更容易,我可以構建的標準組合,像這樣:
combination: {
'1' : ['B'],
'2' : ['B'],
'3' : ['A','B'],
'4' : ['C'],
'5' : ['A','B','C','D'],
},
你能解釋一下這裏發生了什麼嗎? 「結果」是針對不同問題的一系列答案嗎? 「標準」代表什麼? –
不應該很難,但需要一些額外的細節。 A,B,C型如何發揮作用?你比較每個,只有一個,等?答案是「AND」還是「OR」?也就是說,如果標準是A/B/C,那麼「A」是真的還是三個都需要?如果後者,他們是否需要有序。將問題簡化爲更易於使用的基本功能,然後再增加複雜性,可能會獲得更好的幫助。 – SteveJ
@AutumnLeonard我試圖在代碼塊之前解釋。 '/'表示分隔符,因爲結果可能會返回不同的答案,並且仍然符合條件。如果你看看我的編輯,我想我會更清楚地構建標準,儘管更詳細。所以在這種情況下,'結果'將符合'B型'的要求。 – elzi