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