Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 31.08.2017, 02:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

j0hnik,
ок, но циклов много
Ответить с цитированием
  #12 (permalink)  
Старый 31.08.2017, 02:24
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
j0hnik,
ок, но циклов много
Если можно сделать шустрей этой, напишите. =)
Ответить с цитированием
  #13 (permalink)  
Старый 31.08.2017, 02:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

j0hnik,
один цикл
var arr = [9, 9, 9, 111, 5, 2,  3, 4, 4, 5, 5, 5, 7];
function fn(d, e) {
    for (var f = [], b = {}, a, c = 0; c < d.length; c++)
    a = d[c], b[a] >= e || (b[a]++ || (b[a] = 1), b[a] >= e && f.push(a));
    return f
};
alert(fn(arr, 3));
Ответить с цитированием
  #14 (permalink)  
Старый 31.08.2017, 08:15
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

рони,
Один цикл, но все равно работает медленней чем моя
Ответить с цитированием
  #15 (permalink)  
Старый 31.08.2017, 11:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

j0hnik,
где тест?
и если не трудно сделайте ещё на 10000 одинаковых элементов
и for можно поменять на while или reduce

Последний раз редактировалось рони, 31.08.2017 в 11:56.
Ответить с цитированием
  #16 (permalink)  
Старый 31.08.2017, 12:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от j0hnik
но все равно работает медленней чем моя
ой и это ещё не предел
var arr = new Array(10000).fill(1);
function fn(d, e) {
    for (var f = [], b = {}, a, c = 0; c < d.length; c++)
    a = d[c], b[a] == e || (b[a]++ || (b[a] = 1), b[a] == e && f.push(a));
    return f
};
console.time("x")
var x = fn(arr, 3);
console.timeEnd("x")
alert(x);
function three(arr){
return arr.filter((el, i)=> {
var s = 0;
while (i--) if (el == arr[i]) s++;
return (s>1&&s<=2);
});
}
console.time("k")
var k = three(arr);
console.timeEnd("k")
alert(k);
Ответить с цитированием
  #17 (permalink)  
Старый 31.08.2017, 12:17
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
j0hnik,
где тест?
и если не трудно сделайте ещё на 10000 одинаковых элементов
и for можно поменять на while или reduce
https://jsperf.com/fgfdgertrt

на 10 000 одинаковых? откуда такие числа
может на 10 000 разных?
for на while шило на мыло, они одинаковые по скорости

Последний раз редактировалось j0hnik, 31.08.2017 в 12:22.
Ответить с цитированием
  #18 (permalink)  
Старый 31.08.2017, 12:35
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
j0hnik,
где тест?
и если не трудно сделайте ещё на 10000 одинаковых элементов
и for можно поменять на while или reduce
я понял о чем вы, если много одинаковых то ваш быстрей.
Ответить с цитированием
  #19 (permalink)  
Старый 31.08.2017, 12:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

j0hnik
можно тест где ваш код быстрее?
Ответить с цитированием
  #20 (permalink)  
Старый 31.08.2017, 12:47
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

рони,
https://jsperf.com/fgfdgertrt
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать что бы картинки с другого url отображались как свои zlodey Серверные языки и технологии 1 04.05.2015 21:30
Как проверить сайт клиента на установленный блок Alexmad Серверные языки и технологии 10 02.04.2015 20:03
как проверить, что введенные пользователем цифры - это действительно цифры? sana Общие вопросы Javascript 7 31.03.2015 21:16
как сделать что бы при открытии страницы сразу открылось большое фото oksanaweb Общие вопросы Javascript 1 05.06.2013 02:17
Как узнать что полоса прокрутки коснулся самого низа Грабовский Элементы интерфейса 3 15.01.2012 14:33