1. ActionScript / Говнокод #7309

    −113

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    public override function match(xdoc:XML):Boolean {
    			var newsearch:String = search;
    			var xpathnodes:Array = new Array();
    			while(true) {
    				var xpathnode:String = splitnodes.exec(newsearch);
    				if(xpathnode) {
    					xpathnodes.push(xpathnode);
    				} else {
    					break;
    				}
    				newsearch = newsearch.substring(newsearch.search(xpathnode) + xpathnode.length);
    			}
    			return matchXPath(xpathnodes, xdoc);
    		}

    Фантастическая реализация String.split() за тем же авторством. :)

    Запостил: wvxvw, 21 Июля 2011

    Комментарии (5) RSS

    • > while(true)
      а как же правило 15 секунд?
      Ответить
      • показать все, что скрытоИногда мне кажется, что между нами что-то есть, может это пиписюнчик, а может и нечто большее.
        Ответить
      • exec() меняет lastIndex у регулярного выражения, поэтому цикл не бесконечный, но все равно очень глупый. Т.е. нужно было использовать либо String.split() либо RegExp.match() ну только с разными выражениями, конечно. Но даже, если делать так, как задумал автор, то
        while (result = expression.exec()) { ... }
        потому-что ветвление внутри цикла явно лишнее.
        Ответить

    Добавить комментарий