/** * 生成一個指定起始值和結束值的序列 * 類似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' }
// ]
文檔:https://www.lodashjs.com/docs/lodash.range