15 мая 2010, 21:18

Javascript: get Array Unique Values

getUniqueValues = function (arr) {
	var hash = new Object();
	for (j = 0; j < arr.length; j++) {hash[arr[j]] = true}
	var array = new Array();
	for (value in hash) {array.push(value)};
	return array;

}

2 комментария РСС

Миша
Ужасный код. new Object(); new Array(); Глобальные переменные (j, value); Два раза зачем-то перебираете (первый раз — массив arr, а второй — объект hash), хотя можно было бы за один проход сделать с проверкой. Плюс не учитываются унаследованные свойства в пробеге через in (надо делать проверку с помощью hash.hasOwnProperty(value).
Alexander Nordelius
И снова я, со своими 5-ю копейками:

var getUniqueValues = function(a) {
return a.filter(function(o,i,e){return e.indexOf(o)===i});
}

Ваш комментарий

адрес не будет опубликован

ХТМЛ не работает


Ctrl + Enter