【问题标题】:Array map with one number in JavaScript [duplicate]JavaScript中带有一个数字的数组映射[重复]
【发布时间】:2020-10-14 10:55:17
【问题描述】:

我想用一个数字创建数组。有可能吗?

在array = 60 中,我的意思是array[1, 2, 3 ...60],但我希望这个数组只有一个数字。

我想要这样的东西。

JavaScript:

let array = 60;
const map1 = array.map(x => console.log(x));

console.log 必须发生 60 次。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您可以使用new Array(60); 创建一个长度为60 的数组。然后附加fill("") 以用空字符串填充它们的数组。之后,您可以map() 将每个项目的索引设置为它的值。

    (请注意,索引是从零开始的,因此您需要添加一个)。

    let arr = new Array(60).fill("").map((_, i) => i + 1);
    
    arr.forEach(n => console.log(n));

    详细说明:

    // Create array of length 60
    let arr = new Array(60);
    
    // Fill the whole array with a value, i chose empty strings
    let filledArr = arr.fill("");
    
    // Replace every value with it's index plus one. Index starts at 0 that's why we add one
    let numArr = filledArr.map((_, i) => i + 1);
    

    编辑: 通过将其制成一个函数,您可以使用动态长度调用它

    const makeNumArr = num => new Array(num).fill("").map((_, i) => i + 1);
    
    let fiveArr = makeNumArr(5);
    let tenArr = makeNumArr(10);
    
    console.log(fiveArr);
    console.log(tenArr);

    【讨论】:

    • _ 是干什么用的?
    • 感谢您的回答,但为什么这个数组以 11 开头?
    • @MayankGupta _ 只是数组中当前项目的变量名。我本可以选择一个不同的名称,但 _ 是您不使用的变量的通用名称。 Array.map 有更多关于该方法的信息
    • @სალისულაბერიძე 这是因为在stackoverflow上我们只能在控制台中显示50行。如果你把它复制到你自己的代码中,它应该显示全部 60。
    【解决方案2】:

    我想你正在寻找这个。当你想返回一个新数组时,你可以使用map。如果你只是想迭代你应该使用forEach

    let array = new Array(60).fill(1);
    array.forEach(x => console.log(x));

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多