使用 for 循环和另一个数组填充一个数组

Populating an array using a for loop and another array

这更像是一个学习练习,没有什么特别重要的 - 我不确定 Google 我正在寻找的东西的最佳方法,我点击了其他一些建议的答案但没有找到任何看起来超级相关的东西。

我想知道是否有一种方法可以使用另一个数组和一个 for 循环来填充一个数组(而不是就地修改现有数组的内容)。我的设想是这样的:

var existingArray = ["Thing1", "Thing2", "Thing3"];

let newArray = for (var i=0; i < existingArray.length; i++) {
  "Modified string " + existingArray[i];
}

// Output: ["Modified string Thing1", "Modified string Thing2", "Modified string Thing3"]

在这里我可以创建新的数组变量并在同一代码块中或多或少地填充它。我知道如何用我刚才说的更传统的方式来做到这一点:

newArray = [];
oldArray = ["Thing1", "Thing2", "Thing3"]

for (var i = 0; i < oldArray.length; i++) {
  newArray.push("Modified string " + oldArray[i]);
}

如果这是一个有点愚蠢的问题,我很抱歉,我只是想知道是否有办法做到这一点以及这样做是否有任何好处。声明一个新数组并用一小段代码填充它似乎很酷,而不是声明新数组,然后使用 .push() 来填充它。

使用.map会更好,因为你是将一个数组转换成另一个数组,只需要一行:

const existingArray = ["Thing1", "Thing2", "Thing3"];
console.log(
  existingArray.map(thing => 'Modified string ' + thing)
);

当您没有 .map 来自的现有数组时,您仍然可以使用 Array.from 执行类似的操作来立即创建一个数组 - 在第一个参数中定义长度,并且将 map 函数放在第二个参数中:

const originalArray = Array.from({ length: 3 }, (_, i) => 'Thing ' + (i + 1));
console.log(originalArray);

newArray = [];
oldArray = ["Thing1", "Thing2", "Thing3"]

for (i in oldArray) {
  newArray.push("Modified string " + oldArray[i]);
}
console.log(newArray)