【问题标题】:How to print 1 to 100 using ES6 map function? [closed]如何使用 ES6 映射功能打印 1 到 100? [关闭]
【发布时间】:2018-12-19 20:08:34
【问题描述】:

如何使用 ES6 map 函数打印 1 到 100 ? 注意:不使用任何循环或递归的东西。只使用映射函数。

【问题讨论】:

  • 嗨!欢迎! SO 不是代码编写服务。这是一个问答网站,仅用于帮助人们理解和解决代码问题。这个问题的问题是没有代码可以显示您尝试过的内容,因此您显然没有我们可以帮助解决的代码的特定问题。
  • Array(100).fill( ).map( (_,i) => console.log( i + 1 ) );,但是 map 是错误的函数。 map 仅应在您想通过将函数应用于原始数组的每个元素来创建新数组时使用。 forEach 更适合您只想为每个元素执行一个操作。
  • 您这样做的目的是什么? mapforEach 一样多,是一个循环,此外它还会创建一个新数组。

标签: javascript arrays ecmascript-6


【解决方案1】:

使用map

Array.apply(null, {length: 100}).map((value, index) => index + 1);

使用from

Array.from(new Array(100),(val,index)=>index+1);

...还有很多技巧。只需谷歌“创建范围 es6”


甚至更短:

[...Array(100)].map((_, i) => i+1);

【讨论】:

    【解决方案2】:

    要解决这个问题,您首先需要一个包含 100 个值的数组。可以创建并填充一个新数组,以便我们可以映射这些值。一旦我们有了要映射的数组,我们就可以利用数组的索引作为我们想要输出的当前数值,除了它是从 0 开始的。由于索引值是从 0 开始的,因此我们需要在结果中加 1 以获得 1-100 的范围(而不是 0-99)。

    new Array(100).fill().map((_, i) => console.log(i + 1));
    

    map 函数通常用于基于现有数组返回一个数组。由于您不需要返回数组,因此最好使用 forEach()。

    new Array(100).fill().forEach((_, i) => console.log(i + 1));
    

    【讨论】:

    • 感谢 rob 的解决方案。
    猜你喜欢
    • 2015-10-25
    • 2015-04-11
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 2011-07-09
    • 2018-03-13
    • 2021-07-21
    • 2014-09-22
    相关资源
    最近更新 更多