Предлагаю игру

 
0
 
JavaScript
ava
ElectricalStorm | 06.10.2004, 16:58
Предлагаю игру...

Цель игры: написать функцию (функции придумывайте сами ...smile но не сложные а интересные )
Правила: Тело функции должно начинаться на return,

выигрывает тот
у кого короче....? код smile
(стишок) :)

Пример:

function convertHexStringToNumberArray(hexString)
{
return hexString.
replace(/\s+/g,'').
replace(/([a-fA-F\d]{2})/g, function($1){return parseInt($1, 0x10)+' '}).
split(' ').
splice(0, hexString.replace(/\s+/g,'').length/2);
}
Comments (12)
ava
Aliance | 06.10.2004, 20:08 #
function myFunction() { return uri }
ava
Sardar | 06.10.2004, 21:13 #
ElectricalStorm ты знаешь толк в извращениях ! smile smile smile
Чуть тебя поправлю:
function convertHexStringToNumberArray(hexString) 
{
  return hexString.
      replace(/\s+/g,'').
/* лучше не использовать имена начинающиеся с доллара */
      replace(/([a-fA-F\d]{2})/g, function(wrd){return parseInt(wrd, 0x10)+' '}).
/* если стоит несколько пробелов, то split сделает массив с пустыми элементами, фиксим использованием регов*/
      split(/\s+/).
      splice(0, hexString.replace(/\s+/g,'').length/2);
}
alert(convertHexStringToNumberArray("08   07   06"));

Не скажу что это коротко, но довольно запутанно smile И так простейшая подсветка XML кода!
<script language="Javascript" type="text/javascript">
<!--
str="<test>Privet<hallo text=\"Privetstvuju vsex\" people=\"ElectricalStorm, i drugie =) \"><bla>TEkst in blabla's</bla></hallo></test>";

function XMLHighlight(str){
return str.replace(/\s*<(\/)?([a-z-A-Z]+)([^>]*)>\s*([^<]+)?/g, function() {
var ret="",spc="";
for(var i=((!arguments.callee.bla)?arguments.callee.bla=1:arguments[1]?arguments.callee.bla--:++arguments.callee.bla); i>0; i--) spc+="&nbsp;&nbsp;&nbsp;";
ret+="<b>&lt;"+(arguments[1]?"/":"")+"</b><font color='#001fee'>"+arguments[2]+"</font>"+(arguments[3]?arguments[3]:"").replace(/\s*([a-zA-Z]+)(?:\s*=\s*\"([^\"]+)\")?/g,
function() {return "&nbsp;<b><font color='#0aa505'>"+arguments[1]+"</font></b>"+((arguments[2])?"<b>=</b><i><font color='#5e078d'>\""+arguments[2].replace(/\s/g,'&nbsp;')+"\"</font></i>":"");});
return spc+ret+"<b>&gt</b><br>"+(arguments[4]?spc+"&nbsp;&nbsp;&nbsp;"+arguments[4].replace(/\s/g,"&nbsp;")+"<br>":"");
});
}
document.write(XMLHighlight(str));
//-->
</script>
ava
korob2001 | 06.10.2004, 22:50 #
А такой вариант прокатит?

function localTm() {
       var stm = new Date;document.frm1.tm.value = (stm.getHours() < 10?(" " + stm.getHours()): stm.getHours()) + ":" + (stm.getMinutes() < 10 ? ("0" + stm.getMinutes()): stm.getMinutes()) +":"+(stm.getSeconds() < 10 ? ("0" + stm.getSeconds()):stm.getSeconds()),setTimeout("localTm()",100);
    }

Правда он не начинается с return, но сделать это не трудно с помощью второй функции ( можно вложенной ) :)

Доработал до двух. Сейчас ещё подумаю. ;)
ava
Sardar | 06.10.2004, 22:57 #
korob2001 это все таки 3 строчки(синтаксически), просто отформатированны в одну. Попробуй доработать до одной smile Вспомни про оператор запятая ;-)
ava
ElectricalStorm | 07.10.2004, 11:46 #
Sardar
1. Ничего страшного не случиться если поставить доллар в начале...

2. Если во входной строке будет несколько пробелов все будет работать нормально я протестировал...


Ко всем давайте соблюдать хоть какие-нибудь правила форматирования кода.....
Sardar Ваш код очень длинный...


added later:
Надо же искать красоту в решениях а не просто тяп ляп...
ava
ElectricalStorm | 07.10.2004, 12:36 #
Я так же склонен полагать что родное название было лучше ....
added later:
korob2001 Ваше беру ... действительно было бы клево найти красивое решение для форматировани дат ...
ava
Aliance | 07.10.2004, 13:04 #
Цитата (korob2001 @ 6.10.2004, 22:50)
можно вложенной

У меня вложенная, никто ж не запрещал ;-))))))
smile:
ava
ElectricalStorm | 07.10.2004, 13:39 #
Вариант korob2001 у меня пока так ;)


var date = new Date;

function localTm(date)
{
       return date.getHours().
               toString().
               replace(/^(\d)$/,'0$1').
               concat(date.getMinutes()).
               replace(/^(\d)$/,'0$1').
               concat(date.getSeconds()).
               replace(/^(\d)$/,'0$1').
               match(/\d{2}/g).
               join(":");
}


Еще вариантик

function localTm(date)
{
return new Date().
toString().
match(/\d{2}:\d{2}:\d{2}/).
join("");
}
ava
Dr.Death | 07.10.2004, 13:57 #
А в чем прикол, объясните? :withstupid
ava
ElectricalStorm | 07.10.2004, 14:03 #
Читай правила...
ava
ElectricalStorm | 07.10.2004, 14:19 #
Модератор ... измените пожалуйста название темы ...
это не соревнование никакое !!!

здесь я хотел бы увидеть/показать
симпатичные на мой взгяд не стандартыне решение стандартных проблем...
ava
Sardar | 07.10.2004, 19:39 #
Цитата (ElectricalStorm @ 7.10.2004, 10:46)
1. Ничего страшного не случиться если поставить доллар в начале...

У читающего твой код может сложится впечатление что это особая фича регов(совпадение захватывающих скобок), в то время как это просто имя аргумента функции.
Цитата (ElectricalStorm @ 7.10.2004, 10:46)
Sardar Ваш код очень длинный...

Понятие длинный не корректно, я написал код синтаксически в одну строку. Синтаксическая строка это statement - законченная инструкция, заканчивающаяся на ;
Цитата (ElectricalStorm @ 7.10.2004, 10:46)
Надо же искать красоту в решениях а не просто тяп ляп...

Xмм... а я бы свой код "тяп-ляп" ом бы не назвал... все таки убил на него 20 минут...
Цитата (ElectricalStorm @ 7.10.2004, 11:36)
Я так же склонен полагать что родное название было лучше ....

"Предлагаю игру..." - не информативное название. Меняю на: "Предлагаю игру, самый короткий и полезный код"

Ну и на последок: ко мне можно обращатся на ты, если ты не против, то я к тебе тоже буду на ты.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit