javascript 以 10 个间隔创建数组项,最多 100 个

javascript create array item in 10 interval upto 100

我想以 javascript 的方式创建对象数组,就像动态的间隔方式一样,假设间隔值为 10,那么它应该从 10 开始到 100 结束

初始值 = 10 最终值 = 100

所以最终数组很像

[
 {
  "label": "10",
  "value": "10"
 },
 {
  "label": "20",
  "value": "20"
},
{
  "label": "30",
  "value": "30"
},
{
  "label": "40",
  "value": "40"
},
{
  "label": "50",
 "value": "50"
},
{
  "label": "60",
 "value": "60"
},
{
"label": "70",
"value": "70"
},
{
 "label": "80",
 "value": "80"
},
{
 "label": "90",
 "value": "90"
},
{
  "label": "100",
 "value": "100"
} 

]

所以知道我如何制作上面的对象数组

您可以使用正常的 for loop and an array push() 方法来实现。

const initialValue = 10;
const endValue = 100;
const finalArray = [];

for (let n = initialValue; n <= endValue; n += 10) {
  finalArray.push({ label: n, value: n });
}

console.log(finalArray);

您也可以使用 Array.from() 来生成值。

我们将使用 createLabels() 函数来包装它,传入 startValue、endValue 和步骤。

function createLabels(startValue, endValue, step) {
    const length = 1 + (endValue - startValue) / step;
    return Array.from({ length }, (v,k) => {
        const value = String(startValue + k*step);
        return { label: value, value };
    });
}

console.log(createLabels(10, 100, 10))
.as-console-wrapper { max-height: 100% !important; }

您可以像这样初始化数组:

[...Array(10).keys()].map(i => ({'label':10+i*10, 'value':10+i*10}))

如果你想要更通用的:

const gen = (init,end,step) => 
  ([...Array(Math.ceil((end-init+1)/step)).keys()].map(i => ({
    'label':init+(i)*step, 
    'value':init+(i)*step
  })));

gen(10,100,10);