2011-10-14 37 views
1

可以說我有一個像查找字謎JavaScript的jQuery的

列表

狗 狗 神 狗 狗狗 斑馬 木

我想要做的是找到列表中的所有單詞,無論的情況下,或者不管實際的單詞。我想匹配這些字母並進行計數。所以從上面

狗,狗,上帝都將是一個匹配,在這種情況下,將返回「3」作爲計數,但狗,狗狗,斑馬,木材......都將是唯一的,所有將返回1計數..雖然我知道這是可能的,我不知道從哪裏開始。這個字謎概念讓我有些失望。有任何想法嗎?

回答

5
var words = new Array("Dog", "dOg", "God", "doggy", "dogg","Zebra", "Wood"); 
var unique = {}; 

// iterate over all the words 
for (i=0; i < words.length; i++) { 

    // get the word, all lowercase 
    var word = words[i].toLowerCase(); 

    // sort the word's letters 
    word = word.split('').sort().join('') 

    // keep a count of unique combinations 
    if(unique[word]) 
     unique[word] += 1; 
    else 
     unique[word] = 1; 
} 

// print the histogram 
for (u in unique) 
    document.write(u + ": " + unique[u] + "<br/>") 
+1

我恨它當'新的答案有appeared'酒吧大作,它是你在寫什麼完整版本。好的回答+1 – Andrew

+1

我也是。 :)這太令人沮喪了。 – Cliff

+1

看起來我們都在想同樣的事情......哈哈 –

2

這裏就是我想出了... jsfiddle here

$(document).ready(function() { 
    var mywords = ['Dog', 'dOg', 'God', 'doggy', 'dogg', 'Zebra', 'Wood']; 
    var finalArr = {}; 

    for (var i = 0; i < mywords.length; i++) { 
     var temp = mywords[i].toLowerCase(); 
     var letters = temp.split(''); 
     var sorted = letters.sort(); 
     var final = sorted.join(""); 
     if(typeof finalArr[final] != 'undefined'){ 
      finalArr[final] ++; 
     } else { 
      finalArr[final] = 1; 
     } 
    } 
    console.log(finalArr); 
    for(var i in finalArr) { 
     alert(i + ': ' + finalArr[i]); 
     document.write(i + ': ' + finalArr[i] + "<br/>"); 
    } 
});