Заполнить массив объектами js
Необходимо написать функцию, которая будет принимать параметры - год и срок, и возвращать массив из 12 объектов ДЛЯ каждого кода, также в каждом из 12 должно быть поле месяц от 1 до 12 соотвественно.
Пример:
год -2022
срок - 1
Результат:
[
{
year: 2022,
month: 1,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2022,
month: 2,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2022,
month: 3,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2022,
month: 4,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2022,
month: 5,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2022,
month: 6,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2022,
month: 7,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2022,
month: 8,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2022,
month: 9,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2022,
month: 10,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2022,
month: 11,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2022,
month: 12,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 1,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 2,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 3,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 4,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 5,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 6,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 7,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 8,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 9,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 10,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 11,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
{
year: 2023,
month: 12,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
},
];
Пробовал так, но что-то похоже не то:
for (let i = reportYear; i <= reportYear + validity; i++) {
for (let k = 1; k <= 12; k++) {
res.push({
year: i,
month: k,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
});
}
Ответы (2 шт):
Автор решения: Ekaterina
→ Ссылка
Добавьте в конце фигурную скобку.
for (let i = reportYear; i <= reportYear + validity; i++) {
for (let k = 1; k <= 12; k++) {
res.push({
year: i,
month: k,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
});
}
}
Автор решения: Абдулазиз
→ Ссылка
Если вы указываете срок в номере, то эта функция вам подходит.
function get(reportYear, number) {
const arr = []
for (let i = 0; i <= number; i++) {
for (let k = 1; k <= 12; k++) {
arr.push({
year: reportYear + i,
month: k,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
});
}
}
return arr
}
console.log(get(2022, 3)) // 2022 + 3 = 2025
// from: 2022 // to: 2025
А если указать в годах, то это
function get(reportYear, validity) {
const arr = []
for (let i = 0; i <= validity - reportYear; i++) {
for (let k = 1; k <= 12; k++) {
arr.push({
year: reportYear + i,
month: k,
plannedValue: "",
achievedValue: "",
plannedCost: "",
achievedCost: "",
});
}
}
return arr
}
console.log(get(2022, 2023))