Сообщение от Esigns
			 
		
	 | 
	
		все привет. Есть строка имейлов с разделителем пробел : 
email1@email.com email1@email.com email2@email.com email1@email.com 
 
Строка может быть достаточно длинной(скажем 5-10К имейлов). 
Есть ли способ более быстрый чем этот : 
var arr = emails.split(" ");
var res = new array();
for(var i=0; i<arr.length; i++) {
    for(var j=0; j<arr.length; j++) {
         if(arr[i] == arr[j]) удаляю повторение из массива
    }
}
 
Вроде как есть способ решить задачу через replace, но я в регулярках совсем новичек и подобную регулярку буду составлять целый день, если вообще составлю. 
 
Спасибо.
	 | 
	
В исходном коде ошибка, нужно во внутреннем цикле
for(var 
j=0; j<arr.length; j++)
заменить на
for(var 
j=i+1; j<arr.length; j++)
Предлагаю свои два варианта:
1.
var res = emails.split( " " );
var tmp = {};
var i = 0;
while( i < res.length ) {
  var tmp2 = res[i].toUpperCase();
  if( tmp2 in tmp )
    res.splice( i, 1 );
  else {
    tmp[tmp2] = 1;
    ++i;
  }
}
2.
var res = emails.split( " " );
res.sort( function(a,b) { a=a.toUpperCase(); b=b.toUpperCase(); return a>b?1:a<b?-1:0; } );
var i = 1;
while( i < res.length ) {
  if( res[i-1].toUpperCase() == res[i].toUpperCase() )
    res.splice( i, 1 );
  else
    ++i;
}
(сорри за вложенный условный оператор 

 )
Второй вариант нарушает исходный порядок, но это можно легко исправить, если нужно.