• Где ошибка в коде цикла Javascript?

    chlp
    @chlp
    фулстек
    Для начала, расставьте точки с запятыми.
    Затем, прежде, чем выполнить draw(imgs), вам нужно дождаться загрузки всех изображений с помощью img.onload.
    Ответ написан
    3 комментария
  • Как правильно сделать условие для цикла в данной ситуации на Javascript?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Если очень хочется знать всё до грамма, нужно проверять все направления
    for (var i = 0, result = []; i < arr.length; i++){
    	for (var j = 0, _result = []; j < arr[i].length; j++){
    		_result.push({
    			t: i == 0 ? null : arr[i][j] === arr[i - 1][j],
    			tr: i == 0 || j == arr[i].length - 1 ? null : arr[i][j] === arr[i - 1][j + 1],
    			r: j == arr[i].length - 1 ? null : arr[i][j] === arr[i][j + 1],
    			br: i == arr.length - 1 || j == arr[i].length - 1 ? null : arr[i][j] === arr[i + 1][j + 1],
    			b: i == arr.length - 1 ? null : arr[i][j] === arr[i + 1][j],
    			bl: i == arr.length - 1 || j == 0 ? null : arr[i][j] === arr[i + 1][j - 1],
    			l: j == 0 ? null : arr[i][j] === arr[i][j - 1],
    			tl: i == 0 || j == 0 ? null : arr[i][j] === arr[i - 1][j - 1]
    		});
    	}
    
    	result.push(_result);
    }
    
    console.log(JSON.stringify(result));

    Если же достаточно знать, что ячейка непустая и совпадает с любым направлением, можно проще
    for (var i = 0, result = []; i < arr.length; i++){
    	for (var j = 0, _result = []; j < arr[i].length; j++){
    		var status = !!arr[i][j];
    
    		if (!status) {
    			status = arr[i][j] === arr[i][j - 1] || arr[i][j] === arr[i][j + 1];
    
    			if (!status && i != 0) {
    				status = arr[i][j] && (arr[i][j] === arr[i - 1][j - 1] || arr[i][j] === arr[i - 1][j] || arr[i][j] === arr[i - 1][j + 1]);
    			} else if (!status && i != arr.length - 1) {
    				status = arr[i][j] && (arr[i][j] === arr[i + 1][j - 1] || arr[i][j] === arr[i + 1][j] || arr[i][j] === arr[i + 1][j + 1]);
    			}
    		}
    
    		_result.push(status);
    	}
    
    	result.push(_result);
    }
    
    console.log(JSON.stringify(result));

    Пример
    Ответ написан
    3 комментария
  • Как правильно сделать условие для цикла в данной ситуации на Javascript?

    @serega_kaktus
    Программист-самоучка, фрилансер
    Зачем такой код
    if(arr[i][j] == "X" && arr[i+1][j] == "X" && arr[i+2][j] == "X")
    во вложенном цикле? Зачем прибавлять константы, если есть переменная i?
    // Проход по горизонтали
    // Проход по вертикали такой же, только во вложенном цикле поменяйте местами i и j в условии
    for(var i = 0; i < arr.length; i+=1){
      countet = 0;
       for(var j = 0; j < arr.length; j+=1){
         var last_counter = counter;
         if (arr[i][j] == 'X') {
            counter++
         }
         else {
           counter = 0;
         }
         // здесь можем сделать нужные вычисления с counter и last_counter. Например, найти максимально длинную последовательность
       }
    }
    // По диагонали
    var counter = 0;
    for (var i = 0; i < arr.length; i++) {
      var last_counter = counter;
       if (arr[i][i] == 'X') {
          counter++
       }
       else {
         counter = 0;
       }
       // здесь можем сделать нужные вычисления с counter и last_counter. Например, найти максимально длинную последовательность
    }


    PS цИкл, диагонАль, ',,,,'
    Ответ написан
    1 комментарий
  • Почему Angular е видит функцию?

    baskerville42
    @baskerville42
    Учусь работать (Junior)
    var a = document.getElementsByTagName("input");
    var mas=[];

    Что за ересь? Вы документацию по Ангулару хоть читали? Есть же ngModel..

    А это?
    for (i=0;i<=3;i++){
              mas[i]=a[i].value; // Из инпутов в массив
            }
          for (i=0;i<=3;i++){
              a[i].value=mas[i]; // Обратно
              document.getElementById('Products').innerHTML += mas[i];
           }

    Не ужто нельзя загуглить как в ангуларе пройтись по массиву

    <p><input type="button" value="Submit" onclick="save()"></p>


    Зачем Вы используете директиву ngSubmit, а потом ещё и на кнопку с value = submit вешаете событие??? И для таких событий есть же специальное ngClick

    https://angularjs.org/ я взагалі не заздрю тому, кому ви залишите цей код. Взагалі...
    Ответ написан
    3 комментария
  • Почему в условии "o" есть true в Javascript?

    @Interface
    Судя по этой конструкции:
    var wincomb = innerArr[i][j] && innerArr[i][j+1] && innerArr[i][j+2];

    я так понимаю, вы расчитываете, что в переменной wincomb окажется "X". Однако, там окажется булева переменная, т.е. true/false. При этом false там будет, если каждый из этих:
    innerArr[i][j];
    innerArr[i][j+1];
    innerArr[i][j+2];

    элементов будет пустой строкой.
    Затем вы сравниваете if(wincomb == "X"){
    результат (булева переменная) со строкой, которая приведется также к булевой, а так как строка это "Х", то всегда будет приводиться к true.

    В вашем случае в коде довольно сложно разобраться, поэтому исправить вашу проблему затруднительно. Скорее всего лучше будет писать заново большую часть. Советую обратить внимание на правописание англоязычных переменных.
    Ответ написан
  • Почему массив перезаписывается (Javascript)?

    mudrenokanton
    @mudrenokanton
    frontend dev
    ваш rez находится в локальной области видимости функции, если хотите, что бы можно было добавлять, надо писать в таком стиле

    var rule = {};
    rule.rez = [];
    rule.addElements = function (array){
      var l = array.length;
      var i = 0;
      for (i = 0; i < l; i++) { this.rez.push(array[i]) };
    };
    Ответ написан
    4 комментария
  • Выбрать курсы программирования?

    @FloorZ
    Плохо тебе друзья посоветовали.
    Надо не повторять, а реализовывать что-то, для чего нужен язык программирования. Судя по тегам, там ХТМЛ и JS. Могу посоветовать завести простенькую страничку-визитку и начать улучшать ее, используя различные уроки по JS, от Hello world до чего то сложного... Например до полноценного блога. Не надо по урокам... они скучные.
    И не надо видеоуроки смотреть. Процесс обучения по ним медленный слишком.
    Ответ написан
    1 комментарий
  • Баг или так должно быть?

    @f0rmat1k
    Это синтаксис es6, который судя по всему уже работает в этих версиях браузеров (либо где-то на пути этого файла до браузера используется babel). По сути это тот же
    var foo = {
        bar: function() {
            alert('foobar');
        }
    }
    Ответ написан
    Комментировать
  • Стоит ли для более глубокого понимания Javascript изучать высокоуровневый язык?

    GM2mars
    @GM2mars
    Выше javascript только фреймворки на javascript )
    Если взялись за js то его и изучайте, поверьте, там много всего интересного. Тем более язык универсальный: фронтэнд, бекэнд, мобильные и десктопные приложения.
    Ответ написан
    Комментировать
  • Стоит ли для более глубокого понимания Javascript изучать высокоуровневый язык?

    @kir_vesp
    Web Developer
    Если ваша цель лучше разобраться в программировании, как таковом, то осваивайте алгоритмы и реализуйте их на JS. Есть куча задач на hackerrank, codingame и др. А если более важным является умение практически применять js в различных ситуациях, то это надо изучать стандарты(более глубокое понимание возможностей языка), библиотеки(дабы не изобретать очередной велосипед),фрэймворки и просто различные наработки людей, например, codepen.io , чтобы иметь на вооружении широкий спектр "фишек". Ну, ещё неплохо бы тогда Node.js для бэк-энда. Примерно так может выглядеть путь, если быть именно JS-программистом.
    Ответ написан
    Комментировать
  • Стоит ли для более глубокого понимания Javascript изучать высокоуровневый язык?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Традиционно рекомендуется изучить какой-нибудь LISP. Сейчас довольно известен Clojure, который, к тому же, умеет компилироваться в JS.
    Можно изучить Python — хороший мультипарадигменный язык.
    На примерах на C#/Java обычно объясняются всякие ООП-паттерны и наборы принципов типа S.O.L.I.D. Это важно при написании индустриального кода. Со знанием Java, к тому же, можно будет уйти на Android, а с C# — на Unity3D (если надоест вебдев).
    Можно вынести себе мозг Haskell'ом, непривычная парадигма расширит мышление и позволит перенести некоторые практики и в JS.
    Ответ написан
    Комментировать
  • Стоит ли для более глубокого понимания Javascript изучать высокоуровневый язык?

    @kazmiruk
    Встречный вопрос: а что такое верхнеуровневый язык? Наверное, что высокоуровнеый. А где в Вашем представлении находится js, на каком уровне? По мне так высокоуровневей трудно придумать. А про вопрос стоит ил нет изучать что-то еще - разработчик ценится не возможностью механической работы, а знаниями. А изучения доп языков способствует развитию кругозора.
    Ответ написан
    2 комментария
  • Какая книга поможет в освоении JS?

    Мой путь Самурая.
    learn.javascript.ru
    Не смотри видео уроки, там за тебя все продумали ты просто списываешь готовый чужой алгоритм.
    Ответ написан
    Комментировать
  • Как получить доступ к данным из $hhtp.get() в angularJS?

    keksmen
    @keksmen
    Just a programmer
    Вы, видимо, не совсем правильно поняли принцип работы ajax запросов.
    Синхронные запросы - зло для производительности, посему в Angular используют механизм, похожий на Promises.
    Соответственно, сразу данные не придут и в консоль не будет выведено ничего корректного.

    Суть в том, что за запрос уходит определенное время и callback вызывается только по его завершении.

    Грубо говоря, внутри callback'а, после проведенных операций, вам нужно вызвать scope.$apply(), чтобы применить изменения модели и уже тогда можете быть уверены, что данные пришли.
    Ответ написан
    1 комментарий
  • Как сделать position: fixed до определённого момента скроллинга страницы?

    Sticky kit попробуйте leafo.net/sticky-kit
    Ответ написан
    Комментировать