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

时间:2018-06-28 21:19:54

标签: javascript arrays populate

这更多的是学习练习,没有什么超级关键的-我不确定要找到所需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()填充它似乎很酷。

2 个答案:

答案 0 :(得分: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 :(得分:1)

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

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