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

    0

    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
    function sortWithIndeces(toSort: any) {
      for (let i = 0; i < toSort.length; i++) {
        toSort[i] = [toSort[i], i];
      }
      toSort.sort(function(left: any[], right: any[]) {
        return left[0] < right[0] ? -1 : 1;
      });
      toSort.sortIndices = [];
      for (let j = 0; j < toSort.length; j++) {
        toSort.sortIndices.push(toSort[j][1]);
        toSort[j] = toSort[j][0];
      }
    
      return toSort;
    }
    
    sortWithIndeces(arr);
    
    arr.sortIndices.forEach((item: any, index: number) => {
      result[index] = data[item];
    });

    Нашёл в гите у нас на проекте этот божественный код )
    Сортировка выглядит так, ни одного коммента в коде.
    В ходе анализа стало понятно что таким образом автор пытался восстановить порядок сортировки.

    igpo, 09 Августа 2019

    Комментарии (24)
  2. JavaScript / Говнокод #25746

    −1

    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
    if (!a) {
      	a = 1;
    } else {
    	a = 2;
    }
    var a = undefined;
    console.log(a); //undefined
    
    if (!a) {
      	a = 1;
    } else {
    	a = 2;
    }
    var a ;
    console.log(a); //1

    Her, 02 Августа 2019

    Комментарии (33)
  3. JavaScript / Говнокод #25735

    +1

    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
    parse: function() {
                    let c = dstack[dstack.length - 1];
                    c = c == ' ' ? '\\s' : s.replace(/[^\w\s]/g, '\\$&');
                    const regex = new RegExp('^[^' + c + ']*', 'g');
                    const match = regex.exec(rest_source);
                    dstack.push(match[0]);
                    rest_source = rest_source.slice(regex.lastIndex, rest_source.length);
                    output.push(match[0]);
                },
                word: function() {
                    let c = dstack[dstack.length - 1];
                    c = c == ' ' ? '\\s' : s.replace(/[^\w\s]/g, '\\$&');
                    const regex = new RegExp('^[' + c + ']*', 'g');
                    const match = regex.exec(rest_source);
                    rest_source = rest_source.slice(regex.lastIndex, rest_source.length);
                    output.push(match[0]);
                    words.parse();
                },
                name: function() {
                    dstack.push(' ');
                    words.word();
                },

    /докт[ао]р,?\s*у\s*м[еи]ня\s*регулярк[аои]\s*г[ао]л[ао]вного\s*мо(ск|зг)а/i

    666_N33D135, 27 Июля 2019

    Комментарии (20)
  4. JavaScript / Говнокод #25716

    0

    1. 1
    2. 2
    Бесят пидоры, которые переопределяют действие "Ctrl+F" в браузере
    на свой сраный никому не нужный поиск.

    BoeHHblu_nemyx, 12 Июля 2019

    Комментарии (104)
  5. JavaScript / Говнокод #25702

    +1

    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
    var XMLHttpRequest = function(XHR, type, listener) {
    	return function() {
    		var xhr = new XHR;
    		xhr.addEventListener(type, listener);
    		return xhr;
    	};
    }(XMLHttpRequest, 'loadend', function(e) {
    	if (this.status == 0) {
    		console.log(e.type, 'network error');
    	} else {
    		console.log(e.type, this.status);
    	}
    });
    
    // js-library code...

    unicorn, 06 Июля 2019

    Комментарии (3)
  6. JavaScript / Говнокод #25700

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    xhr.upload.addEventListener('progress', function (e) {
      if (e.lengthComputable) {
        let percents = Math.round(e.loaded / e.total * 100)
        $(`#preloader-${preloaderId}`).html(`${percents}%`)
        $(`#preloader-${preloaderId}`).append(`<style>#preloader-${preloaderId}:before{ width: ${percents * 0.94}px;}</style>`);
      }
    }, false);

    Прогрессбар на псевдоэлементах.

    mesumev, 05 Июля 2019

    Комментарии (33)
  7. JavaScript / Говнокод #25699

    +1

    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
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    function natRound() {
    
    	var out = []
    	    , fib = [0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233] // etc
    	    , _data = function() { // random values
    
    			var out = []
    				, count = Math.round( Math.random() * 100)
    			;
    
    			for(var i=0; i < count; i++ ) {
    				out.push( Math.random() * 100 ); // in km
    			}
    
    			return out.sort(function(a,b){ return a-b; });
    	    }()
    	    , roundTo = function (value) {
    			var i = fib.length;
    			while(i--) {
    				if ( value < fib[i] ) continue;
    				return i? i: value; // natural sorting
    			}
    	    }
    	;
    
    	for( var i=0; i<_data.length; i++ ) {
    		out.push( 'Value: [' + _data[i] + ']; Sort = [' + roundTo(_data[i]) + ']' );
    	}
    
    	return out;
    }

    Необходимо было учесть дискретность при сортировке расстояний в километрах.
    Например, в синтаксисе Elastic это выглядит так:

    "ranges" => [
    [ "to" => 1 ],
    [ "from" => 1, "to" => 3 ],
    [ "from" => 3, "to" => 5 ],
    [ "from" => 5],
    // etc
    ]

    Используя цепочку чисел Фибоначчи, как наиболее "человечески приятный" ряд, функция roundTo возвращает число для сортировки значений массива.

    bot, 04 Июля 2019

    Комментарии (89)
  8. JavaScript / Говнокод #25696

    +7

    1. 1
    2. 2
    3. 3
    4. 4
    go 23239
    govno gopa barebuh suka
    
    pidor jopa

    Это — особый диалект «JavaScript», используемый в «Google»: https://www.youtube.com/watch?v=-XRLl9LEZ7c&t=16 (16-я секунда, https://i.imgur.com/O8AwR9B.png).

    Именно поэтому я за «Google».

    gost, 03 Июля 2019

    Комментарии (122)
  9. JavaScript / Говнокод #25689

    +4

    1. 1
    this.checkArrayErrors() ? (this.canSend = true) : (this.canSend = false);

    Код разраба, который не прошел испытательный срок и сказал что к нему придираются.

    UnQu1et, 28 Июня 2019

    Комментарии (88)
  10. JavaScript / Говнокод #25682

    −1

    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
    document.onmousemove = (el) => {
                    if (this.rot) {
                        var s_x = el.pageX, s_y = el.pageY;
                        if (s_x !== o_x && s_y !== o_y){
                            var s_rad = Math.atan2(s_y - o_y, s_x - o_x);
                            s_rad -= Math.atan2(h_y - o_y, h_x - o_x);
    
                            var dgr = (s_rad * (360 / (2 * Math.PI)));
                            element.initPositions.rotateDeg = dgr;
                            element.styles.transform = 'rotate(' + dgr + 'deg)';
                        }
                    }
    };

    А, как я сразу не понял, что это просто ротейт елемента...

    websbkinfo, 20 Июня 2019

    Комментарии (41)