Yevs / kottans-homework

1 stars 0 forks source link

Фидбек на домашку №2 #5

Closed tiny-kottan closed 8 years ago

tiny-kottan commented 8 years ago

В идеале функция

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

const classes = node.attrs.class
  .split(' ')
  .filter(klass => klass.length && !ignoredClasses.has(klass))
  .join(' ');

В целом, 👍