Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Удаление одинаковых элементов массива (https://javascript.ru/forum/events/45211-udalenie-odinakovykh-ehlementov-massiva.html)

Deff 20.02.2014 01:42

Цитата:

Сообщение от danik.js
Deff, консоль открой. От тебя не ожидал )))

Гы, вот указывать мастер, а сделать нормальный тест без извратов

danik.js 20.02.2014 01:59

Цитата:

Сообщение от Deff
нормальный тест без извратов

То есть console.time() для замера времени - это изврат?:lol:

рони 20.02.2014 01:59

Цитата:

о что-то новенькое земляника со вкусом малины
:write:
Цитата:

Сообщение от danik.js
Чтоб отработал вариант с Map() надо в chrome://flags включить harmony

:victory: :thanks:

Deff 20.02.2014 04:19

danik.js,
Ты какие лишние движения делал на моём тесте ?

Поясняю, для особо уникальных, вот я тьву продам машину, но чтобы заполнить тех паспорт, ты будешь сам лезть под капот и кавыряцо в масле, дабы разглядеть номер!

Демо тест, на то и демо, чтобы нажать кнопку и получить результат, не открывая консоли во всех браузерах!

kostyanet 20.02.2014 11:53

Ваяс,

Идея простая - поменять ключи со значениями. Все лишнее автоматом укокошится.
arr=[1,8,8,1,3,8,3,4,5,6,7,10,45];
res={};
for(var i=0;i<arr.length;i++)
  res[arr[i]]=1;
arr=[];
for(var i in res)
  arr.push(i);
console.log(arr.toSource());


Если было не пинайте в лицо,

рони 20.02.2014 12:10

kostyanet,
искали не лишнее а повторяющиеся

danik.js 20.02.2014 12:12

Цитата:

Сообщение от kostyanet
Если было не пинайте в лицо

Я пну, ибо нехер лезть в дискуссию, не разобравшись, что тут обсуждают.
И между прочим:
Цитата:

TypeError: Object [object Array] has no method 'toSource'

kostyanet 20.02.2014 12:44

Звездешь, пинаю взад, вот ТЗ.

Цитата:

Сообщение от Ваяс
Помогите удалить одинаковые элементы массива, оставляя те что не повторялись

Типичный array_unique();

Будете мне тут мозг. И насчет кстати. Кусок проверен в консоли ФФ - все пашет. И будет пахать, потому что js слава екме тоже по барабану какие там ключи. Доступ через [] универсален.

kostyanet 20.02.2014 12:47

arr=["шо","шоп","песе","есец","песец" ,"мозг","ептытьЖ:-upr90/76?=00",4,5,6,7,10,45];
res={};
for(var i=0;i<arr.length;i++)
res[arr[i]]=1;
arr=[];
for(var i in res)
arr.push(i);
console.log(arr.toSource());

"["1", "3", "4", "5", "6", "7", "8", "10", "45"]" Scratchpad/1:8
16:04:34.269 "["4", "5", "6", "7", "10", "45", "\u0448\u043E", "\u0448\u043E\u043F", "\u043F\u0435\u0441\u0435", "\u0435\u0441\u0435\u0446", "\u043F\u0435\u0441\u0435\u0446", "\u043C\u043E\u0437\u0433", "\u0435\u043F\u0442\u044B\u0442\u044C\u0416:-upr90/76?=00"]" Scratchpad/1:8

danik.js 20.02.2014 12:53

Цитата:

Сообщение от kostyanet
И будет пахать, потому что js слава екме

Пожалуйста ссылку на стандарт, где описывается функция toSource()
Не фф единым.

danik.js 20.02.2014 12:55

Цитата:

Сообщение от kostyanet
Типичный array_unique();

Не, ну ты реально тормоз. Походу тебя носом тыкать бесполезно.

kostyanet 20.02.2014 12:58

А вы что 5 страниц обсуждали как найти одинаковые элементы? Ну тормоза... я конечно как пишут топег не читал весь.

Про toSource() я вообще ничего не знаю. Показывает и ладно.

kostyanet 20.02.2014 13:00

Нет, вчерашняя тема, я подумал может кто мертвую поднял и перенаправил с поиска уникальных на поиск не уникальных.

"Удаление одинаковых элементов массива" это поиск уникальных элементов массива.

Будете продолжать мучиться баттхертом - вам же хуже.

danik.js 20.02.2014 13:07

Цитата:

Сообщение от kostyanet
Про toSource() я вообще ничего не знаю. Показывает и ладно.

Быть может, тебе одному из всех кто тут пишет и показывает) Ну ладно, главно ты доволен. А остальные проигнорируют да и ладно. Какой-то чужой неработающий код - не работает ну и хер с ним :D

Цитата:

Сообщение от kostyanet
топег не читал весь

А мы тут разные варианты по скорости тестируем. Ну и обсуждаем кое какие мелочи, и даже ES6 коснулись. Но тебе это не нужно читать - не дорос еще. Но если у тя есть рабочий вариант решения - могу добавить в тесты, если тебе интересно.

kostyanet 20.02.2014 13:09

Это кстати типичная задача. Допустим вы запросили с бд кортежи из нескольких отношений, то есть через join. Очень запросто появятся столбцы с повышенной энтропией. Чтобы из такого столбца сделать список, вы можете применить array_unque(), а чтобы сделать дерево профтыкать строки в массив на заранее известную глубину, например

$res[$row['country']][$row['city']][$row['block']][$row['street'']=$row['building'].$row['appartment'];

balanced tree само все за вас распихает по местам.

kostyanet 20.02.2014 13:10

Цитата:

Сообщение от danik.js
могу добавить в тесты, если тебе интересно.

Нет, тесты меня не колебут.

danik.js 20.02.2014 13:13

Короче, твои посты в этой теме ниочем. Нет ни варианта нового, ни идей.

kostyanet 20.02.2014 15:31

Нисмог смириться. Рунет, что тут поделаешь...


Часовой пояс GMT +3, время: 18:18.