2013-09-27 3 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.

Btw, ваш сценарий должен быть

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 "и добавляю' undefined' из 'if indexes [data [i] .text]' undefined Я получаю '[] [] [] [] []' Спасибо! – hyperrjas

+0

Да, это работает! Большое спасибо! – hyperrjas

Смежные вопросы