2013-09-27 43 views
0

我有一個元素重複的數組:刪除陣列的重複元素與coffescript

data = ["Ruby on rails", "Ruby on rails", "Jquery", "Coffescript", "Javascript"] 

我嘗試刪除陣列的重複元素與

indexes = [] 
uniques = [] 
i = 0 
while i < data.length 
if indexes[data[i].text] is "undefined" 
    indexes[data[i].text] = "defined" 
    uniques.push 
i++ 
console.log data 

,但我得到的元素重複相同的結果。

我該如何解決?

謝謝!

+0

短期修復您的代碼,你我建議像underscore.js 庫它的偉大對於這種事情。 –

回答

5
… is "undefined" 

不會被編譯到=== "undefined",這是不是你想要的。刪除不與字符串進行比較的引號,但是輸入undefined值。

順便說一句,你的腳本應該是

index = {} 
uniques = [] 

for text in data 
unless (text of index) 
    index[text] = true 
    uniques.push(text) 

甚至過濾理解像我這樣的

index = {} 
uniques = for text in data when not (text of index) 
index[text] = true 
text 
+0

如果我刪除do''undefined''並添加未定義'如果索引[data [i] .text]'未定義,我會得到'[] [] [] [] []'謝謝! – hyperrjas

+0

是啊,工作!非常感謝你! – hyperrjas