• Как понять рекурсию в коде ниже?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Первый вопрос: потому что срабатывает условие n <= 0, и возвращается 0.

    Второй вопрос: потому что число 2 в массиве находится в нулевом (1 - 1 = #0) элементе массива, именно оно суммируется с финальным 0, и эта сумма возвращается.

    Третий вопрос: получается стартовый элемент 3 - 1 = #2, значит суммируются числа 4 + 3 + 2 + 0 = 9, потому что именно число 4 находится во #2-ом элементе массива.
    Ответ написан
    Комментировать
  • Как обрезать строку в Javascript?

    @Spaceoddity
    function truncateString(str, num) { // функция принимает два аргумента - саму строку и ограничение длины строки
    
      if (str.length > num) { // если длина строки больше ограничения
        return str.slice(0, num) + "..."; // обрезаем строку до ограничения, в конце добавляем многоточие (sic!) и возвращаем 
      } else { // в противном случае
        return str; // возвращаем исходную строку
      }
    }

    Вторая функция делает всё то же самое, только записана в одну строчку - https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Ответ написан
    Комментировать
  • Как понять нижеуказанный код Javascript?

    ZerdoX-x
    @ZerdoX-x
    Frontend developer influenced by web, a11y, crypto
    function largestOfFour(matrix) {
      let results = []; // переменная для хранения самых больших чисел из каждой строки матрицы
    
      // итерация по матрице
      for (let rowIndex = 0; i < matrix.length; i++) {
        // переменнная, в которой будет храниться самое большое число из текущей строки матрицы
        let largestNumber = matrix[rowIndex][0]; // первый элемент текущей строки в качестве значения по умолчанию
        // итерация по строке матрицы
        for (let rowElementIndex = 1; j < matrix[rowIndex].length; j++) {
          // если текущий элемент больше самого большого числа на текущем этапе итерации_
          if (arr[rowIndex][rowElementIndex] > largestNumber) {
            // самым большим числом становится текущий элемент строки матрицы
            largestNumber = arr[rowIndex][rowElementIndex];
          }
        }
        // после итерации по строке матрицы сохраняет самое большое число
        results[rowIndex] = largestNumber;
      }
      
      return results;
    }


    Этот код очень императивный, не пиши так. Ты можешь конечно разобраться как работает этот код, но самому тебе такой код не придётся писать (я надеюсь). Вот пример этой же функции, которая делает всё то же самое, но код получился гораздо лаконичнее:
    function largestOfFour(arr) {
      return arr.map((row) => Math.max(...row))
    }


    UPDATE: в комментариях под этим ответом есть обсуждение касаемо императивного кода. Отвечая автору вопроса я не имел в виду, что императивный код плохой и нельзя писать императивный код. Я имел в виду, что фронтендеру зачастую следует избегать императивности во время разработки (тем более, во время решения тривиальных задач)
    Ответ написан
    8 комментариев
  • Как понять нижеуказанный код Javascript?

    @antares4045
    function largestOfFour(arr) { 
      let results = []; //аккамулятор результатов
      for (let i = 0; i < arr.length; i++) { //для каждой строки матрицы arr
        let largestNumber = arr[i][0]; //пердпологаем, что первое число в строке является максимальным
        for (let j = 1; j < arr[i].length; j++) { //для всех чисел в строке, начиная со второго
          if (arr[i][j] > largestNumber) { // если текущее число больше нашего текущего максимума
            largestNumber = arr[i][j]; // обновляем значение максимума
          }
        }
        results[i] = largestNumber; //кладём текущий максимум в аккамулятор
      }
    
      return results; //возвращаем аккамулятор как результат работы функции
    }
    Ответ написан
    Комментировать