09.04.2013, 16:18
|
Профессор
|
|
Регистрация: 31.01.2010
Сообщений: 229
|
|
Мне кажется что по интерациям, быстрее мой способ!
|
|
09.04.2013, 16:46
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от qwermjk
|
Мне кажется что по интерациям, быстрее мой способ!
|
огромные массивы оба способа долго будут мучить.
самый быстрый вариант, это складывать уникальные значения в другой массив, тем самым не нужно будет пробегать по огромному массиву проверяя в нем же, его же значения.
|
|
09.04.2013, 18:08
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от devote
|
самый быстрый вариант, это складывать уникальные значения в другой массив
|
а не в объект?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
09.04.2013, 22:08
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,577
|
|
Сообщение от nerv_
|
а не в объект?
|
Поясни.
Если как значения - то перебор хэша медленней, если как ключи - то мы говори не только о текстовых значениях.
__________________
29375, 35
|
|
10.04.2013, 11:46
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Aetae
|
Поясни.
|
Задача - уникальные в массиве.
var obj = {};
var newArr = [];
// цикл по массиву (arr)
// value
if ( !obj[ value ] ) {
obj[ value ] = 1;
newArr.push( value );
}
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
10.04.2013, 12:02
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,577
|
|
nerv_,
а теперь дочитай пост.)
P.S. Сам в своё время попался на эту "гениальную" идею.)
__________________
29375, 35
|
|
10.04.2013, 12:04
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
nerv_,
Aetae же упомянул что мы говорим не только о текстовых/примитивных значениях. Объекты так же могут быть в массиве, которые ты уже не сможешь поместить в объект в качестве ключа.
var arr = [document, document, window, document.body];
|
|
10.04.2013, 12:29
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Aetae
|
а теперь дочитай пост.)
|
Сообщение от devote
|
var arr = [document, document, window, document.body];
|
конкретно на данный пример, можно сделать так
alert([
document.toString(),
document.toString(),
window.toString(),
document.body.toString()
]);
Ну а в целом: примитивы в объект, объекты в массив. Быстрее будет. Или нет? )
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Последний раз редактировалось nerv_, 10.04.2013 в 12:35.
|
|
10.04.2013, 12:33
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от nerv_
|
конкретно на данный пример, можно сделать так
|
не надо придираться к написанному... Понятно дело что у этих объектов разные значения toString() но в простых объектах все иначе:
var a = {};
var b = {};
var arr = [a, a, b, b];
|
|
10.04.2013, 14:48
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Aetae
|
Сам в своё время попался на эту "гениальную" идею.)
|
вообще-то идея нормальная и вовсе не гениальная ) скорее стандартная )
Обычно, мы знаем с чем имеем дело. И, если надо из массива примитивов отобрать уникальные, вариант с объектом предпочтительней.
С другой стороны, с точки зрения абстрактной функции array_unique, ей должно быть все равно.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
|
|