31.08.2017, 02:16
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
j0hnik,
ок, но циклов много
|
|
31.08.2017, 02:24
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Сообщение от рони
|
j0hnik,
ок, но циклов много
|
Если можно сделать шустрей этой, напишите. =)
|
|
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));
|
|
31.08.2017, 08:15
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
рони,
Один цикл, но все равно работает медленней чем моя
|
|
31.08.2017, 11:53
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
j0hnik,
где тест?
и если не трудно сделайте ещё на 10000 одинаковых элементов
и for можно поменять на while или reduce
Последний раз редактировалось рони, 31.08.2017 в 11:56.
|
|
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);
|
|
31.08.2017, 12:17
|
|
Профессор
|
|
Регистрация: 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.
|
|
31.08.2017, 12:35
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Сообщение от рони
|
j0hnik,
где тест?
и если не трудно сделайте ещё на 10000 одинаковых элементов
и for можно поменять на while или reduce
|
я понял о чем вы, если много одинаковых то ваш быстрей.
|
|
31.08.2017, 12:43
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
j0hnik
можно тест где ваш код быстрее?
|
|
31.08.2017, 12:47
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
|
|
|
|