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);
我想以 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);