代码之家  ›  专栏  ›  技术社区  ›  rob.m

如何动态创建阵列?

  •  1
  • rob.m  · 技术社区  · 7 年前

        $("#years").ionRangeSlider({
          type: "double",
          grid: true,
          min: 0,
          from: 10,
          to: 11,
          max: 2018,
          prettify_enabled:false,
          values: [
              "1910", "1920", "1930",
              "1940", "1950", "1960",
              "1970", "1980", "1990",
              "2000", "2010", "2018"
          ]
        });
    

    我需要能够生成 from 0 to 2018 在这方面

          values: [
              "1910", "1920", "1930",
              "1940", "1950", "1960",
              "1970", "1980", "1990",
              "2000", "2010", "2018"
          ]
    

    但我不能手动操作,因为它们有2000个值。所以我想用一个循环,比如

    for(var i = 0; i < 2018; i++;) {
    
    } 
    

          [
              "0", .... , "2018"
          ]
    
    3 回复  |  直到 7 年前
        1
  •  9
  •   Andrew Li    7 年前

    您可以创建一个包含2019个插槽(0到2018年包括在内)的阵列,然后填充并映射到其索引:

    Array(2019).fill().map((_, i) => i)
    

    如果需要字符串,可以通过串联或插值强制:

    Array(2019).fill().map((_, i) => `${i}`)
    
        2
  •  2
  •   msanford    7 年前

    要修改Li357(或任何)的答案,这样您就不必每年新年都更改此代码:

    Array((new Date()).getFullYear() + 1).fill().map((_, i) => i)
    

    max:

    所以在某个地方设置一个变量并使用它,因为 new Date() 可能有点重。

        3
  •  2
  •   charlietfl    7 年前

    Array#from()

    Array.from({length: currentYear + 1}, (_,i) => i)