es posible?
Quiero crear datos de objetos continuos.
lo que quiero
return [ { text: '2', align: 'center', value: '2', sort: false }, { text: '3', align: 'center', value: '3', sort: false }, { text: '4', align: 'center', value: '4', sort: false }, { text: '5', align: 'center', value: '5', sort: false }, { text: '6', align: 'center', value: '6', sort: false }, { text: '7', align: 'center', value: '7', sort: false }, { text: '8', align: 'center', value: '8', sort: false }, ]mi reflexion
return [ () => { for (let i = 0; i >= 8; i++) { return { text: i, align: 'center', value: i >= 10 ? `day${i}` : `day0${i}`, sort: false, } } }, ]Pero esto, por supuesto, no funcionó. ¿Cómo puedo hacerlo de esta manera?
Puede hacer esto llenando una matriz vacía de la cantidad de elementos que desee y luego usando el map y el índice de cada elemento vacío:
const result = new Array(35).fill(0).map((_, i) => ({ text: i, align: 'center', value: i >= 10 ? `day${i}` : `day0${i}`, sort: false, })); console.log(result);Puede declarar una pequeña función de ayuda que llama a una función para ( mapas sobre ) un rango dado de enteros, así:
function mapRange(min, max, fn) { const out = []; for (let i = min; i < max; i++) { out.push(fn(i)); } return out; }Entonces puedes simplemente
const result = mapRange(0, 35, (i) => ({ text: i, align: 'center', value: i >= 10 ? `day${i}` : `day0${i}`, sort: false, })); (Según una prueba de JSBench, esto es aproximadamente un 20 % más rápido que la solución similar de Jamiec que utiliza el new Array().fill().map() .)
Las otras respuestas son demasiado largas... inútiles... Intente
[...Array(7)].map((_, i) => ({ text: `${i+2}`, align: 'center', value: `${i+2}`, sort: false }));