Как указано @ random , вы можете использовать add .flat
после вызова .map
, поскольку это создаст массив массивов, которые вы хотите сгладить after.
Кроме того, вы можете сделать это за один проход, просто добавив элементы в новый массив:
const resultData = [
{INTELLCONT: [{TITLE: {"_text": "A"}}, {TITLE: {"_text": "B"}}, {TITLE: {"_text": "C"}}]},
{INTELLCONT: [{TITLE: {"_text": "D"}}, {TITLE: {"_text": "E"}}, {TITLE: {"_text": "F"}}]},
{INTELLCONT: [{TITLE: {"_text": "G"}}]},
{INTELLCONT: [{TITLE: {"_text": "H"}}, {TITLE: {"_text": "I"}}, {TITLE: {"_text": "J"}}, {TITLE: {"_text": "K"}}]},
{INTELLCONT: [{TITLE: {"_text": "L"}}]},
{INTELLCONT: [{TITLE: {"_text": "M"}}, {TITLE: {"_text": "N"}}]},
{INTELLCONT: [{TITLE: {"_text": "O"}}]},
{INTELLCONT: [{TITLE: {"_text": "P"}}, {TITLE: {"_text": "Q"}}, {TITLE: {"_text": "R"}}, {TITLE: {"_text": "S"}}]},
];
const newResults = [];
resultData.forEach(result => {
if (result.INTELLCONT.length > 1) {
for (let i = 0; i < result.INTELLCONT.length; i++) {
newResults.push({
title: result.INTELLCONT[i].TITLE._text,
});
}
} else {
newResults.push({
title: result.INTELLCONT[0].TITLE._text,
});
}
});
console.log(newResults);
Если resultData
может быть повторен, вы можете упростить еще больше, используя .flatMap
:
const resultData = [
{INTELLCONT: [{TITLE: {"_text": "A"}}, {TITLE: {"_text": "B"}}, {TITLE: {"_text": "C"}}]},
{INTELLCONT: [{TITLE: {"_text": "D"}}, {TITLE: {"_text": "E"}}, {TITLE: {"_text": "F"}}]},
{INTELLCONT: [{TITLE: {"_text": "G"}}]},
{INTELLCONT: [{TITLE: {"_text": "H"}}, {TITLE: {"_text": "I"}}, {TITLE: {"_text": "J"}}, {TITLE: {"_text": "K"}}]},
{INTELLCONT: [{TITLE: {"_text": "L"}}]},
{INTELLCONT: [{TITLE: {"_text": "M"}}, {TITLE: {"_text": "N"}}]},
{INTELLCONT: [{TITLE: {"_text": "O"}}]},
{INTELLCONT: [{TITLE: {"_text": "P"}}, {TITLE: {"_text": "Q"}}, {TITLE: {"_text": "R"}}, {TITLE: {"_text": "S"}}]},
];
const newResults = resultData.flatMap(result => result.INTELLCONT.map(r => ({title: r.TITLE._text})));
console.log(newResults)
В качестве альтернативы:
const resultData = [
{INTELLCONT: [{TITLE: {"_text": "A"}}, {TITLE: {"_text": "B"}}, {TITLE: {"_text": "C"}}]},
{INTELLCONT: [{TITLE: {"_text": "D"}}, {TITLE: {"_text": "E"}}, {TITLE: {"_text": "F"}}]},
{INTELLCONT: [{TITLE: {"_text": "G"}}]},
{INTELLCONT: [{TITLE: {"_text": "H"}}, {TITLE: {"_text": "I"}}, {TITLE: {"_text": "J"}}, {TITLE: {"_text": "K"}}]},
{INTELLCONT: [{TITLE: {"_text": "L"}}]},
{INTELLCONT: [{TITLE: {"_text": "M"}}, {TITLE: {"_text": "N"}}]},
{INTELLCONT: [{TITLE: {"_text": "O"}}]},
{INTELLCONT: [{TITLE: {"_text": "P"}}, {TITLE: {"_text": "Q"}}, {TITLE: {"_text": "R"}}, {TITLE: {"_text": "S"}}]},
];
const newResults2 = resultData.flatMap(result => result.INTELLCONT).map(r => ({title: r.TITLE._text}));
console.log(newResults2)