'browsed' - это массив объектов с данными для каждой буквы:
[
{
allowMultiSign: undefined,
allowSingleSign: "1",
assignmentStatus: "Browsed",
disclaimer: null,
form16: false,
letterDate: "06-Mar-2020",
title: "letter02",
safetyLetterId: 987
},
{
allowMultiSign: undefined,
allowSingleSign: "1",
assignmentStatus: "Browsed",
disclaimer: null,
form16: false,
letterDate: "06-Mar-2020",
title: "letter01",
safetyLetterId: 123
},
{
allowMultiSign: undefined,
allowSingleSign: "1",
assignmentStatus: "Browsed",
disclaimer: null,
form16: false,
letterDate: "06-Mar-2020",
title: "letter03",
safetyLetterId: 456
},
{
allowMultiSign: undefined,
allowSingleSign: "1",
assignmentStatus: "Browsed",
disclaimer: null,
form16: false,
letterDate: "06-Mar-2020",
title: "letter04",
safetyLetterId: 789
}
]
Я хочу:
- отфильтровать этот массив для писем, которые являются form16 ложными и множественными знаками true
- создать объект для каждой буквы, который проходит фильтр, который будет содержать только идентификатор буквы и заголовок
- concat каждый объект внутри объекта с именем multisign
1 и 2 работают просто отлично (я регистрировал каждый шаг). Проблема с # 3
, когда я регистрирую конечный результат - многосигнал, я вижу только последний объект. Я ожидаю увидеть все 4 объекта в мультизнаке.
Я использовал оператор распространения ранее для этой же точной задачи. Мне интересно, если я просто упускаю мелкие детали или это проблема совместимости. Я использую javascript 6.9.0.
let multisign = {};
browsed.forEach(letter => {
if (letter.form16 == false && letter.allowMultiSign != false) {
let idAndTitle = {
safetyLetterId: letter.safetyLetterId,
title: letter.title
}
multisign = { ...multisign, ...idAndTitle }
}
});
console.log(multisign);
}
пример вывода
{
{
safetyLetterId: 789,
title: "letter04"
}
}