您好,stackoverflow社区的好人们。我遇到了硬件问题,希望您能帮助我。

// 5. Write the code that would make this test pass.

// describe("multTwo", () => {
//     test ("returns an array with all the numbers multiplied by two", () => {
//         expect(multTwo([3, 4, 5])).toEqual([6, 8, 10])
//         expect(multTwo([23, -9, 0])).toEqual([46, -18, 0])
//         expect(multTwo([4.5, -4.5, 12])).toEqual([9, -9, 24])
//     })
// })

let friendlyArray = [1,2,3,4,5]
let newArr = []
const multTwo = (arr) => {
  for (let i = 0; i < arr.length; i++)
  arr.push(newArr[i] *2 )

  return arr;
};
console.log(multTwo(friendlyArray))

我正在尝试将一个数组传递到一个新数组,其中前一个数组中的所有数字都已乘以2。

当我运行程序(使用AWS上的节点)时,我的环境内存不足,它杀死了所有进程。

最佳答案

当您推送到数组时,其长度会增加。因此,如果原始长度为5,则在一次迭代后,新长度为6。在第二次迭代后,新长度为7。

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

将永远循环。

请使用.map,这是基于在每个元素上运行的回调函数将一个数组转换为另一个数组的最合适方法:

const multTwo = arr => arr.map(num => num * 2);
let friendlyArray = [1,2,3,4,5]
console.log(multTwo(friendlyArray))

10-04 22:21