31.08.2017, 17:58
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
рони,
так я вроде меньше строчек написал то
|
|
31.08.2017, 18:15
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
Poznakomlus,
да похоже в данном случае эта строка не даёт никакого ускорения
|
|
31.08.2017, 18:17
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
var arr = new Array(10000).fill(1)
let threeF = arr => arr.filter(el => {
this[el] = ++this[el] || 1;
return 3 === this[el]
}, {})
console.time("x")
var x = threeF(arr);
console.timeEnd("x")
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("k")
var k = fn(arr,3);
console.timeEnd("k")
|
|
31.08.2017, 18:19
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
так извращаясь можно в одну строку
let threeF = arr => arr.filter(el => (this[el] = ++this[el]|| 1) && 3 === this[el], {});
Последний раз редактировалось Vlasenko Fedor, 31.08.2017 в 18:30.
Причина: убрал лишнии скобки
|
|
31.08.2017, 22:36
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Сообщение от рони
|
var arr = new Array(10000).fill(1)
let threeF = arr => arr.filter(el => {
this[el] = ++this[el] || 1;
return 3 === this[el]
}, {})
console.time("x")
var x = threeF(arr);
console.timeEnd("x")
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("k")
var k = fn(arr,3);
console.timeEnd("k")
|
Рони, друг мой, ну разве можно так проверять?
|
|
01.09.2017, 07:10
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
j0hnik,
предложи способ лучше!
|
|
01.09.2017, 08:13
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Сообщение от рони
|
j0hnik,
предложи способ лучше!
|
Просто запустите ваш последний "тест скорости" насколько раз. разброс больше чем в 100% при абсолютно идентичном коде как бэ намекает что измерительный инструмент не совсем точный.
https://jsperf.com/ - Рони вот вам отличный сервис. там даже 5% разброса не видел
|
|
01.09.2017, 10:10
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
j0hnik,
ок но в данном случае этот сервер показал фантастические результаты, когда 11 циклов быстрее одного.
|
|
01.09.2017, 13:50
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Сообщение от рони
|
j0hnik,
ок но в данном случае этот сервер показал фантастические результаты, когда 11 циклов быстрее одного.
|
Рони, знал бы я все низкоуровневые процессы, которые там происходят.
|
|
|
|