module.exports = (node, attribute) => {
delete node.attrs[attribute];
let no_properties = true;
for (let prop in node.attrs) {
no_properties = false;
break;
}
if (no_properties) {
delete node.attrs;
}
};
должна возвращать новый объект и не мутировать входящий. Я бы "собирал" копию объекта избегая того самого атрибута, от которого хотим избавиться.
Это полезная (общая, переносимая) функция, которая может работать с любым объектом, node и attribute - не лучшие имена для аргументов в данном контексте.
Тут можно и нужно (ведь делается 2 итерирования) упростить до одного filter
В идеале функция
должна возвращать новый объект и не мутировать входящий. Я бы "собирал" копию объекта избегая того самого атрибута, от которого хотим избавиться. Это полезная (общая, переносимая) функция, которая может работать с любым объектом,
node
иattribute
- не лучшие имена для аргументов в данном контексте.Тут можно и нужно (ведь делается 2 итерирования) упростить до одного
filter
В целом, 👍