I have a JSON object in array variable that has parent categories and child categories data. I want to place child categories to parent categories as a nested table.
For example this:
const jsonData = [{
category_id: '010103',
level1: 'electronics',
level2: 'TV',
level3: 'samsung',
}, {
category_id: '010104',
level1: 'electronics',
level2: 'TV',
level3: 'philips',
}, {
category_id: '010101',
level1: 'households',
level2: 'kitchen',
level3: 'table',
}];
I want to place them to the table like this:

here is what I tried:
for (let i = 0; i < list.length; i++) {
const row = list[i];
console.log(row);
let evenClass = 'even';
if ((i + 1) % 2 == 0) {
evenClass = 'odd';
}
const low = list[i - 1];
if (row[i] != 0 || 'level1' in low) {
if (row.level1 == low.level1) {
const append = `${'<tr> '
+ ' <td>'}${row.level2}</td>`
+ ` <td>${row.level3}</td>`
+ ` <td>${row.meta_count}</td>`
+ ` <td>${moment(row.reg_date).format('YYYY-MM-DD HH:mm:ss')}</td>`
+ ` <td>${row.category_id}</td>`
+ ' </tr>';
$('#tbody').append(append);
} else {
const append = `${'<tr> '
+ ' <td>'}${row.level1}</td>`
+ ` <td>${row.level2}</td>`
+ ` <td>${row.level3}</td>`
+ ` <td>${row.meta_count}</td>`
+ ` <td>${moment(row.reg_date).format('YYYY-MM-DD HH:mm:ss')}</td>`
+ ` <td>${row.category_id}</td>`
+ ' </tr>';
$('#tbody').append(append);
}
} else {
const appendTr = `${'<tr> '
+ ' <td>'}${row.level1}</td>`
+ ` <td>${row.level2}</td>`
+ ` <td>${row.level3}</td>`
+ ` <td>${row.meta_count}</td>`
+ ` <td>${moment(row.reg_date).format('YYYY-MM-DD HH:mm:ss')}</td>`
+ ` <td>${row.category_id}</td>`
+ ' </tr>';
$('#tbody').append(appendTr);
}
}
how can I achieve this (skipping the same name levels)?