【问题标题】:Populating an array using a for loop and another array使用 for 循环和另一个数组填充数组
【发布时间】:2018-12-08 00:54:36
【问题描述】:

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

我想知道是否有一种方法可以使用另一个数组和一个 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() 填充它会很酷。

【问题讨论】:

    标签: javascript arrays populate


    【解决方案1】:

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

    【讨论】:

    • 该死,我的回答不够快;)
    • 好吧,我不太了解 .map() 函数,但这很有意义。感谢您抽出时间阅读一些 MDN 文档。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-04-09
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多