Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   хочу инвайт на хабр (https://javascript.ru/forum/offtopic/32383-khochu-invajjt-na-khabr.html)

monolithed 17.10.2012 13:49

dmitriymar,
Для примера могу привести реализацию String.prototype.repeat из ES6

monolithed 17.10.2012 13:55

String.prototype.repeat = function(count) 
{
	if ((count |= 0 ) <= 0)
		throw new RangeError();

	var result = [];

	while (count--)
	    result.push(this);

	return result.join('');
};

var start = +new Date;

'foo'.repeat(1000000);

alert(+new Date-start);


String.prototype.repeat = function(count) 
{
	if ((count |= 0 ) <= 0)
		throw new RangeError();

	var result = '';

	while (count--)
	    result += this;

	return result;
};

var start = +new Date;

'foo'.repeat(1000000);

alert(+new Date-start);


String.prototype.repeat = function(count) 
{
	if ((count |= 0 ) <= 0)
		throw new RangeError();

	var result = '';

	while (count--)
	    result.concat(this);

	return result;
};

var start = +new Date;

'foo'.repeat(1000000);

alert(+new Date-start);



String.prototype.repeat = function(count) 
{
	if ((count |= 0 ) <= 0)
		throw new RangeError();

	return Array(count + 1).join(this);
};

var start = +new Date;

'foo'.repeat(1000000);

alert(+new Date-start);



String.prototype.repeat = function(count) 
{
	if ((count |= 0 ) <= 0)
		throw new RangeError();

	var result = '', 
            self = this;

	while (count)
	{
		if (count & 1)
			result += self;

		if (count >>= 1)
			self += self;
	}

	return result;
};

var start = +new Date;

'foo'.repeat(1000000);

alert(+new Date-start);


Тесты

dmitriymar 17.10.2012 14:03

но опять всё упрётся как движок будет обрабатывать конструкции типа self+= self; будет создавать временные строки и т.д. может в новых браузерах будет быстрее создать массив , да сделать ему join.. х.з....
результат последнего впечатлил:)
String.prototype.repeat = function(count)
{
    if ((count |= 0 ) <= 0)
        throw new RangeError();
 
    var result = [1000000];
 
    while (count--)       result[count]=this;
 
    return result.join('');
};
 
var start = +new Date;
 
'foo'.repeat(1000000);
 
alert(+new Date-start);

лёгким жестом алгоритм работает в 5 раз дольше :) эт -к тому что пока не знаем скорость работы операторов 6 го,возможно это сильно скорректирует алгоритмы...
Создание нативной функции заполнения массива одинаковыми значениями может изменить расстановку приоритетов

nerv_ 25.07.2013 00:51

подкиньте инвайт на хабр :) хочу коммент там написать )

cyber 25.07.2013 00:57

nerv_, помог бы так кармы не хватает((
П.с могу передать, но с учетом если моя карма не умрет полностью))

Deff 25.07.2013 03:30

nerv_,
Там сейчас элементарно зарегацо, и в песочню кинуть интересную тему, про тоже сss или вариант разбора пары задач на регулярку, (если карму поднимут типично с первой статьи достаточно поднятия кармы на пару единиц для полноценной реги..)
я по-моему писал про спойлер на сss
Но бываю редко - карма мала, карма для инфайта от 100

deivan 25.07.2013 12:19

может кому-то и элементарно, но я через песочницу только с третьей попытки попал, благодаря интересу сообщества к ноде.жс

devote 25.07.2013 12:20

Цитата:

Сообщение от deivan
но я через песочницу только с третьей попытки попал

это когда было? года три назад.. щас вроде всех подряд туда пускают

Nanto 25.07.2013 13:13

Не карма, надо чтобы твой пост (статья) набрал 100 плюсов. Тогда дают инвайт, т.е. ты можешь его кому-то подарить.

Если написать в песочницу, тогда может кто и подарит (очень часто раздают админы под видом НЛО, если статья на актуальную тематику (обычно это то, что связано с веб-разработкой)), заодно эта же статья из песочницы может набрать сразу 100 плюсов и теперь уже ты можешь подарить кому-то инвайт. Как-то так.

deivan 26.07.2013 11:48

Цитата:

Сообщение от devote (Сообщение 264135)
это когда было? года три назад.. щас вроде всех подряд туда пускают

не уверен.
зарегился я там давненько, но рид-онли сняли только вот в июле, за статью по ноде. до этого была попытка в апреле, и еще до этого - в конце прошлого года.


Часовой пояс GMT +3, время: 08:52.