Доброе утро. У меня есть такая проблема. Есть массив, в котором содержатся объекты, а этих объектах перечислены свойства. Мне нужно удалить одно из повторяющихся свойств. В итоге я должен получить список этих свойств в контейнере на html странице. Ниже приведу массив с объектами.
0:
building: ""
category: "Walls"
family: "Basic Wall"
level: ""
revitid: "281899"
room: ""
symbol: "Wall-Ext_102Bwk-75Ins-100LBlk-12P"
viewid: 3300
__proto__: Object
1:
building: ""
category: "Walls"
family: "Basic Wall"
level: ""
revitid: "282264"
room: ""
symbol: "Wall-Ext_102Bwk-75Ins-250LBlk-12P 2"
viewid: 3304
__proto__: Object
length: 2
__proto__: Array(0)
Т.е. из массива с объектами я должен удалить у второго объекта свойство category: "Walls", family: "Basic Wall" и, в добавок, symbol: "Wall-Ext_102Bwk-75Ins-250LBlk-12P 2"(хотя последнее свойство у них разное)
В итоге из этого массива нужно сгенерировать на html странице такой список
<ul><li>Walls</li> <!-- Category -->
<ul><li>Basic Wall</li> <!-- family -->
<ul><li>Wall-Ext_102Bwk-75Ins-102LBlk-12P</li> <!--symbol -->
<ul><li>Basic Wall ["281899"]</li> <!-- family + revitid -->
<li>Basic Wall ["282264"]</li></ul> <!-- family + revitid -->
</ul>
</ul>
</ul>
У меня есть код для этого, но он очень костыльный и плохой, ниже приведу свой код.
newData.forEach(e => {
// console.log(e['category']);
if (e['category'] === e['category']) {
delete newData[1].category;
};
if (e['symbol'] === e.symbol) {
delete newData[1].symbol;
};
if(e.family === e.family) {
delete newData[1].family;
}
});
console.log(newData);
newData.forEach(el => {
html += '';
if (el.category !== undefined) {
html += `<li>${el['category']}</li>`;
};
if (el.family !== undefined) {
html += `<ul><li>${el['family']}</li>`;
};
if (el.symbol !== undefined) {
html += `<li>${el['symbol']}</li>`;
};
if (el.family !== undefined) {
html += `<li>${el['family']} ${el['revitid']}</li>`;
} else {
newData[1].family = newData[0].family;
html += `${el['family']} ${el['revitid']}</li>`;
}
html += '</ul>';
})
document.getElementById('differencesDiv').innerHTML = html;
Очень надеюсь на вашу помощь, буду очень благодарен.