@mmind

Как зарефакторить код?

// renameFields items->children
    const renameFields = (obj)=> {
        let newObj = {}
        newObj.name = obj.title
        newObj.url = obj.url
        newObj.children = obj.items
        return newObj
    }

    // transform Data
    const transformData = (obj) => {
        if(obj.items === null) {
            obj = renameFields(obj)
            obj.children = []
        } else if(obj.items) {
            obj.items = obj.items.map(item => transformData(item))
            obj = renameFields(obj)
        } else {
            obj = renameFields(obj)
        }
        return obj
    }


Такое ощущение, что можно так-то лучше написать
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
WblCHA
@WblCHA
/** renameFields items->children **/
const renameFields = (obj) => ({
  name: obj.title,
  url: obj.url,
  children: obj.items,
});

/** transform Data **/
const transformData = (data) => {
  const renamedData = renameFields(data);
  
  if(data.items) {
    renamedData.children = renamedData.children.map((child) => renamedData(child));
    return renamedData;
  }
  
  if(data.items === null) {
    renamedData.children = [];
    return renamedData;
  }
  
  return renamedData;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы