Показать сообщение отдельно
  #6 (permalink)  
Старый 17.05.2021, 09:43
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,707

Сообщение от ksa
нет особого смысла в выкладывании варианта хуже предыдущего...
Хуже или лучше - понятие относительное

<script>
let t0, t1, t2, t3;
const ar = Array.from({length:1_000_000}, (_, i)=>i)
let b;

t0 = performance.now();
b = ar.filter(num => [1, 2, 5].includes(+String(num).charAt(0)));
t1 = performance.now() - t0;

t0 = performance.now();
b=[];
for(let i=0; i<ar.length; i++){
	const as = String(ar[i])[0]; 
	if(as === '1' || as === '2' || as === '5') b.push(ar[i])
}
t2 = performance.now() - t0;

t0 = performance.now();
b = ar.filter(num => /^[125]/.test(num));
t3 = performance.now() - t0;

alert (`t1=${t1} t2=${t2} t3=${t3}`)
</script>


Второй вариант самый быстрый, а третий - самый медленный
(ну у меня в Chrome так)

Последний раз редактировалось voraa, 17.05.2021 в 09:57.
Ответить с цитированием