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

3
这更多是一个学习练习,而不是非常关键的事情 - 我不确定如何用谷歌搜索我想要的内容,我点击了一些其他建议的答案,但没有发现任何看起来非常相关的内容。
我想知道是否有一种方法可以使用另一个数组和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()来填充。

2个回答

7

最好使用.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);


1
糟糕,我的回答不够快速。;) - Kevin Jantzer
1
好的,很酷,我并不是非常了解.map()函数,但这很有道理。谢谢你花时间讲解,我要去阅读一些MDN文档了。 - Anthony

2

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接