1. JavaScript / Говнокод #16302

    +161

    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
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    for ( var i in data){
                data[i].id = data[i].id.toString();
                if (tree.l0[data[i].id] == undefined){
                    tree.l0[data[i].id] = data[i];           
                }            
                if (data[i].children){
                    for (var j in data[i].children){
                        data[i].children[j].id = data[i].children[j].id.toString();
                        if ( tree.l1[data[i].children[j].id] == undefined && tree.l2[data[i].children[j].id] == undefined){
                            tree.l1[data[i].children[j].id] = data[i].children[j];    
                        }
                        if (data[i].children[j].children){
                            for (var z in data[i].children[j].children){
                                data[i].children[j].children[z].id = data[i].children[j].children[z].id.toString();
                                if (tree.l2[data[i].children[j].children[z].id] == undefined){
                                    tree.l2[data[i].children[j].children[z].id] = data[i].children[j].children[z];
                                }
                            }
                        }
                    }
                }
            }

    Вот с таким кодом приходится работать... [продолжение]

    Запостил: monstrodev, 10 Июля 2014

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

    • Автор очень не любит переменные?

      Кстати, а зачем он раскидывает элементы древа по уровням (l0, l1 и l2)?
      Ответить
    • data[i].id = data[i].id.toString();

      что это, билять?
      Ответить
      • см. страницу 47 тома 3 "Приключений слабой типизации" под редакцией Заедушного П.
        Ответить
        • нет, я понимаю как это работает, но ведь так делать - писец
          Ответить
          • Зато точно известно, что там будет String, а не какая-то каша. А с null/undefined даже упадёт (всё как вы, строгопрограммисты, любите)
            Ответить
            • а это плохо?
              Ответить
              • Упасть? По-моему, в вебе - плохо (за некоторыми исключениями). Это в НИИ программа не должна рассчитать, что Луна будет завтра от нас в NaN километрах. Там она должна упасть. А в браузере уж лучше показать пользователю "Привет, undefined!", чем упасть и утащить за собой, скажем, обработчик кнопки "ответить".
                Ответить
                • Смотря какой веб. В том же инет магазине или банк-клиенте, имхо, лучше упасть, чем натворить херни.
                  Ответить
                  • Там же транзакции
                    Ответить
                    • // приходит JSON
                      [ {"type": "customer", "name": "Ivanov Ivan" },
                        {"type": "account", "id": "X100500", .... },
                        {"type": "account", "id": "X100501", .... },
                        {"type": "account", "id": "X100502", .... } ]
                      
                      // его обрабатывают
                      function onData(info) {
                        for(var i=0; i<info.length; ++i) {
                          if(info[i].type == 'account')
                            accounts[info[i].ib] = info[i];
                          ...
                      }
                      
                      function onButton_15(button) {
                        var account = accounts[String(textField_8.valoe)];
                        ...
                        // Пошла транзакция, пошла, родная...
                        // А клиент вечером будет звонить в банк,
                        // ему ответит прекрасная незнакомка,
                        // вскоре они отменят транзакцию,
                        // поженятся и будут жить долго и счастливо.
                      }
                      Ответить
                      • // Пошла транзакция, пошла, родная...
                        // А клиент вечером будет звонить в банк,
                        // ему ответит прекрасная незнакомка,
                        // вскоре они отменят транзакцию,
                        // поженятся и будут жить долго и счастливо.

                        Что с тобой. десятый?
                        Ответить
                        • В этом произведении автор рассказывает нам потрясающую историю любви. Столь короткий рассказ вмещает в себя глубокий скрытый смысл. Внимательный читатель может увидеть здесь назидательную историю о значимости ошибок Человечества и непостижимость причинно-следственных связей. Казалось бы, слабая типизация, что с неё взять? Но из-за небрежности программиста страдают зажиточные горожане, имеющие более одного счёта в банке. И на этом всё могло бы кончиться, но по воле Высших Сил главный герой произведения находит свою любовь. Прочитав данное произведение, каждый сразу же осознает мораль: Человек делает ошибки, а Человек-Программист получает за них деньги и почёт.

                          > Что с тобой. десятый?
                          Немного кода на JS и фантазии.
                          Ответить
          • да, и за такое надо руки отрубать по лицу бить!
            Ответить
    • Ехал children через children.
      Видит children: children, children!
      Сунул children children в children,
      Children children children children.
      Ответить

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