/**
* 生成一个指定起始值和结束值的序列
* 类似Python的range函数
* @param {Number} start 起始值
* @param {Number} end 结束值
* @param {Number} step 步长
* @returns {Array} 序列
* eg:
* range(2011, 2022);
*
* [
* 2011, 2012, 2013,
* 2014, 2015, 2016,
* 2017, 2018, 2019,
* 2020, 2021, 2022
* ]
*/
function range(start, end, step = 1) {
let current = start;
let list = [];
while (current <= end) {
list.push(current);
current += step;
}
return list;
}
应用示例:生成一个2020到2022年的序列
let list = range(2020, 2022).map(val => {
return {
label: val + '',
value: val + ''
};
});
console.log(list);
// [
// { label: '2020', value: '2020' },
// { label: '2021', value: '2021' },
// { label: '2022', value: '2022' }
// ]
使用函数工具库lodash提供的range方法
// demo.cjs
// node v10.16.0
// npm i lodash -S
import lodash from 'lodash';
// 注意:这里的 lodash 取值范围是[2020, 2023)
let list = lodash.range(2020, 2023).map(val => {
return {
label: val + '',
value: val + ''
};
});
console.log(list);
// [
// { label: '2020', value: '2020' },
// { label: '2021', value: '2021' },
// { label: '2022', value: '2022' }
// ]