Мне нужно сгенерировать массив объектов, который имеет три ключа со строковыми значениями от 1 до 31. Строки должны иметь два символа, что означает, что 1-9 должны получить 0 впереди.
const days = [
{ key: '01', value: '01', text: '01' },
{ key: '02', value: '02', text: '02' },
{ key: '03', value: '03', text: '03' },
...
{ key: '30', value: '30', text: '30' },
{ key: '31', value: '31', text: '31' }
]
Я думаю, что это должно быть сделано немного короче и умнее, чем решение, которое я придумала:
const days = Array.from({ length: 31 }, (v, k) => {
return {
key: k > 10 ? (k + 1).toString() : '0' + (k + 1),
value: k > 10 ? (k + 1).toString() : '0' + (k + 1),
text: k > 10 ? (k + 1).toString() : '0' + (k + 1)
}
})
А что делать, если я не начинаю со значения 1? Например, тот же массив за годы с 1950 г. по настоящее время (в обратном порядке):
const years = [
{ key: '2018', value: '2018', text: '2018' },
...
{ key: '1950', value: '1950', text: '1950' }
]