Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 09.04.2013, 16:18
Профессор
Отправить личное сообщение для qwermjk Посмотреть профиль Найти все сообщения от qwermjk
 
Регистрация: 31.01.2010
Сообщений: 229

Мне кажется что по интерациям, быстрее мой способ!
Ответить с цитированием
  #12 (permalink)  
Старый 09.04.2013, 16:46
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от qwermjk
Мне кажется что по интерациям, быстрее мой способ!
огромные массивы оба способа долго будут мучить.
самый быстрый вариант, это складывать уникальные значения в другой массив, тем самым не нужно будет пробегать по огромному массиву проверяя в нем же, его же значения.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #13 (permalink)  
Старый 09.04.2013, 18:08
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от devote
самый быстрый вариант, это складывать уникальные значения в другой массив
а не в объект?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #14 (permalink)  
Старый 09.04.2013, 22:08
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Сообщение от nerv_ Посмотреть сообщение
а не в объект?
Поясни.
Если как значения - то перебор хэша медленней, если как ключи - то мы говори не только о текстовых значениях.
__________________
29375, 35
Ответить с цитированием
  #15 (permalink)  
Старый 10.04.2013, 11:46
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Aetae
Поясни.
Задача - уникальные в массиве.

var obj = {};
var newArr = [];

// цикл по массиву (arr)
// value

if ( !obj[ value ] ) {
    obj[ value ] = 1;
    newArr.push( value );
}
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #16 (permalink)  
Старый 10.04.2013, 12:02
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

nerv_,
а теперь дочитай пост.)

P.S. Сам в своё время попался на эту "гениальную" идею.)
__________________
29375, 35
Ответить с цитированием
  #17 (permalink)  
Старый 10.04.2013, 12:04
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

nerv_,
Aetae же упомянул что мы говорим не только о текстовых/примитивных значениях. Объекты так же могут быть в массиве, которые ты уже не сможешь поместить в объект в качестве ключа.
var arr = [document, document, window, document.body];
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #18 (permalink)  
Старый 10.04.2013, 12:29
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 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.
Ответить с цитированием
  #19 (permalink)  
Старый 10.04.2013, 12:33
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от nerv_
конкретно на данный пример, можно сделать так
не надо придираться к написанному... Понятно дело что у этих объектов разные значения toString() но в простых объектах все иначе:
var a = {};
var b = {};
var arr = [a, a, b, b];
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #20 (permalink)  
Старый 10.04.2013, 14:48
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Aetae
Сам в своё время попался на эту "гениальную" идею.)
вообще-то идея нормальная и вовсе не гениальная ) скорее стандартная )

Обычно, мы знаем с чем имеем дело. И, если надо из массива примитивов отобрать уникальные, вариант с объектом предпочтительней.

С другой стороны, с точки зрения абстрактной функции array_unique, ей должно быть все равно.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
$(window).height() и $(document).height() возвращают одинаковые значения Casufi jQuery 14 27.10.2013 22:34
почти одинаковые элементы массива mcavalon Общие вопросы Javascript 3 24.01.2013 11:04
Нужен цикл для создания огромного массива apish Общие вопросы Javascript 2 20.09.2012 16:10
Задачка. Не выбирать уже выбранные значения массива. PashPP Общие вопросы Javascript 5 14.09.2012 14:42
узнать индекс перемен массива из значения bushstas Общие вопросы Javascript 3 14.12.2010 01:23