Перебор JSON и объединение
Есть данные в которых одна запись может иметь продолжение в следующей записи, пример:
[
{
"KASS": "40",
"DAT": "23-07-2010",
"MESS": "1Являясь всего лишь частью общей картины, диаграммы связей объявлены нарушающими"
},
{
"KASS": "40",
"DAT": "23-07-2010",
"MESS": "общечеловеческие нормы этики и морали."
},
{
"KASS": "40",
"DAT": "23-07-2010",
"MESS": "2.Учитывая ключевые сценарии поведения, высокотехнологичная концепция"
},
{
"KASS": "40",
"DAT": "23-07-2010",
"MESS": "3.Как принято считать, активно развивающиеся страны третьего мира, инициированные исключительно синтетически,"
},
{
"KASS": "40",
"DAT": "23-07-2010",
"MESS": "объединены в целые кластеры себе подобных."
},
{
"KASS": "41",
"DAT": "23-07-2011",
"MESS": "1.Сложно сказать, почему ключевые особенности структуры проекта объективно рассмотрены"
}
]
Как такие записи можно перебрать и объединить в новый файл на node.js?
Ответы (1 шт):
Автор решения: Eugene Kuznetsov
→ Ссылка
Если идентификатором того, что запись есть часть одной сущности является "KASS" в данном случае, то можно объединить следующим образом:
const arrayOfSubjects = [{
"KASS": "40",
"DAT": "23-07-2010",
"MESS": "1Являясь всего лишь частью общей картины, диаграммы связей объявлены нарушающими"
},
{
"KASS": "40",
"DAT": "23-07-2010",
"MESS": "общечеловеческие нормы этики и морали."
},
{
"KASS": "40",
"DAT": "23-07-2010",
"MESS": "2.Учитывая ключевые сценарии поведения, высокотехнологичная концепция"
},
{
"KASS": "40",
"DAT": "23-07-2010",
"MESS": "3.Как принято считать, активно развивающиеся страны третьего мира, инициированные исключительно синтетически,"
},
{
"KASS": "40",
"DAT": "23-07-2010",
"MESS": "объединены в целые кластеры себе подобных."
},
{
"KASS": "41",
"DAT": "23-07-2011",
"MESS": "1.Сложно сказать, почему ключевые особенности структуры проекта объективно рассмотрены"
}
];
let identificator = null;
let indexOfResultArr = 0;
const finalArr = [];
for (let subject of arrayOfSubjects) {
const {
KASS,
DAT,
MESS
} = subject;
if (KASS !== identificator) {
finalArr.push(subject);
identificator = KASS;
indexOfResultArr += 1;
} else {
finalArr[indexOfResultArr - 1].MESS = finalArr[indexOfResultArr - 1].MESS.concat(MESS);
}
}
console.log(finalArr);