#javascript #arrays #object
#javascript #массивы #объект
Вопрос:
У меня есть массив объектов с именем Indicators и массив с именем Departments
Для каждого индикатора я должен добавить каждый отдел. Итак, если есть 4 отдела, должно быть 4 индикатора с одинаковым индексом, но с разными отделами. Как я могу этого добиться?
РЕДАКТИРОВАТЬ: вот мой код
let arrDepartment = []
this.DepartmentIR.forEach(e=>{
arrDepartment.push(e.Department)
})
this.RisksIndicatorsIR.forEach(e=>{
let x = {...e}
x.Departments = arrDepartment
console.log(x)
})
})
Комментарии:
1. Опубликуйте свое решение, которое вы пробовали в первую очередь.
2. Я опубликовал свой код. Спасибо.
3. Привет, cjdy13, я опубликовал 2 решения со всеми отделами по каждому индикатору и 1 решение только с 1 отделом по каждому индикатору. Пожалуйста, нажмите на зеленую галочку слева от upvote, если это вам помогло.
Ответ №1:
const departments = [
"department1",
"department2",
"department3",
"department4"
];
const indicators = [
{ name: "indicators1", id: 95 },
{ name: "indicators2", id: 92 },
{ name: "indicators3", id: 93 },
{ name: "indicators4", id: 94 }
];
// Solution with forEach - all departments as key on each indicator
const newIndicators = [];
indicators.forEach((x) =>
newIndicators.push({ ...x, departments: departments })
);
console.log("Solution with forEach", newIndicators);
// Solution with Reduce - all departments as key on each indicator
const newIndicatorsArr = indicators.reduce((acc, x) => {
acc.push({ ...x, departments: departments });
return acc;
}, []);
console.log("Solution with Reduce", newIndicatorsArr);
// Solution if you want 1 department per indicator
const oneDepartmentPerIndicator = indicators.reduce((acc, x, i) => {
acc.push({ ...x, departments: departments[i] });
return acc;
}, []);
console.log("Solution with 1 department per indicator", newIndicatorsArr);