/** * 生成一个指定起始值和结束值的序列 * 类似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' } // ]