$('table tr').get().reduce((acc, n) => {
const $n = $(n);
if (!$n.hasClass('no')) {
acc[acc.length - 1].info.push({
subtitle: $n.find('th').text(),
cell: $n.find('td').text(),
});
} else if (!$n.has('.no2').length) {
acc.push({
title: $n.find('.car').text(),
info: [],
});
}
return acc;
}, [])
или
Array.prototype.reduce.call(
document.querySelectorAll('table tr'),
(acc, n) => {
if (!n.classList.contains('no')) {
acc[acc.length - 1].info.push({
subtitle: n.querySelector('th').textContent,
cell: n.querySelector('td').textContent,
});
} else if (!n.querySelector('.no2')) {
acc.push({
title: n.querySelector('.car').textContent,
info: [],
});
}
return acc;
},
[]
)