Квадрат каждого числа в массиве с JavaScript - Почему только первый номер возводится в квадрат и возвращается? - PullRequest
0 голосов
/ 06 апреля 2019

Аналогично этому вопросу , я пытаюсь выровнять все элементы в массиве с помощью JavaScript. Но в настоящее время мой код только возводит в квадрат и возвращает один из элементов в массиве:

function arrayMadness(a) {

    let squaredA = [];

    for (let i = 0; i < a.length; i++) {

        squaredA.push(Math.pow(a[i], 2));

        return squaredA;
    }
  }

  console.log(arrayMadness([4,5,6]));

Это возвращается 16

И мне интересно, почему? Разве тот факт, что squaredA.push(Math.pow(a[i], 2)); появляется внутри цикла for, не означает, что все элементы помещаются в массив?

Разве это не должно возвращаться [16, 25, 36]?

Я знаю, что есть другие способы сделать это, но я пытаюсь ознакомиться с Math.pow() - и я хотел бы использовать Math.pow(), как предлагали другие решения.

1 Ответ

4 голосов
/ 06 апреля 2019

Вы возвращаетесь на первой итерации. Возврат должен быть вне цикла for.

function arrayMadness(a) {

  let squaredA = [];

  for (let i = 0; i < a.length; i++) {
    squaredA.push(Math.pow(a[i], 2));
  }

  return squaredA;
}

console.log(arrayMadness([4, 5, 6]));

Вы также можете использовать [4,5,6].map(n=>n**2)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...