Javascript.RU

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

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

Сообщение от j0hnik
рони, 6 строчка необязательна
снова ой
var arr = new Array(10000).fill(1)
function threeSix(arr){
return arr.filter((el, i)=> {
var s = 0;
while (i--) {
    if (el == arr[i]) s++;
    if (s > 2)return false
}
return s == 2;
});
}
console.time("x")
var x = threeSix(arr);
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 == 2;
});
}

console.time("k")
var k = three(arr);
console.timeEnd("k")
alert(k);
Ответить с цитированием
  #33 (permalink)  
Старый 31.08.2017, 14:34
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

https://jsperf.com/fdgd5t
Рони друг мой
var arr = [], i=1000;
while(i--) arr.push(Math.floor(Math.random() * 1000));

function three(arr){
return arr.filter((function() {
var c = {};
return function(el) {
c[el] = (c[el] || 0) + 1;
return c[el] == 3;
};
})());
}
console.log(three(arr));


Рвет твою
Ответить с цитированием
  #34 (permalink)  
Старый 31.08.2017, 14:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,136

Сообщение от j0hnik
Рвет твою
смотрите пост №26
Ответить с цитированием
  #35 (permalink)  
Старый 31.08.2017, 15:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,136

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

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

j0hnik,
спасибо никак не мог вспомнить это
c[el] = (c[el] || 0) + 1;


(b[a]++ || (b[a] = 1))
Ответить с цитированием
  #38 (permalink)  
Старый 31.08.2017, 17:41
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

let threeF = arr => arr.filter(el => {
  this[el] = ++this[el] || 1;
  return 3 === this[el]
},{})

вариант

Последний раз редактировалось Vlasenko Fedor, 31.08.2017 в 17:44.
Ответить с цитированием
  #39 (permalink)  
Старый 31.08.2017, 17:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,136

Poznakomlus,
this[el] = ++this[el] || 1; записал
Ответить с цитированием
  #40 (permalink)  
Старый 31.08.2017, 17:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,136

Poznakomlus,
а если так?
let threeF = arr => arr.filter(el => {
  if(this[el] === 3) return false;
  this[el] = ++this[el] || 1;
  return 3 === this[el]
}, {})
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать что бы картинки с другого 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