如何动态创建数组?

时间:2018-12-13 14:14:58

标签: javascript jquery

我有以下内容:

    $("#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 个答案:

答案 0 :(得分:10)

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

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

如果您想要一个字符串,可以通过串联或插值来强制:

Array(2019).fill().map((_, i) => `${i}`)

答案 1 :(得分:2)

您可以使用Array#from()

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

答案 2 :(得分:2)

为适应Li357(或任何其他方式)的答案,因此您不必在每个新年的时候都更改此代码:

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

在这种情况下,也可能还要将ionRangeSlider的max:值设置为此。

因此在某个地方设置一个变量并使用它,因为创建new Date()可能会很繁琐。