//ЕСТЬ СТРУКТУРА ДАННЫХ
 
const structure = [
  "a.js",
  "b.js",
  {
    src: [
      "some.js",
      "other.js",
      {
        components: [
          "someComponent.js",
          {
            input: ["input.js"],
          },
        ],
      },
    ],
  },
];
 
/*
ФУНКЦИЯ ДОЛЖНА ВЕРНУТЬ 
 
[
  'a.js',
  'b.js',
  'src/some.js',
  'src/other.js',
  'src/components/someComponent.js'
]
*/
 
// РЕШЕНИЕ
 
const flutter = (arr, divider = "") => {
  // Ваш код здесь
};

**Ответ

Моё решение

const flutter = (structure, divider = "", stack = []) => {
  for (let file of structure) {
    if (typeof file === "string") {
      stack.push(divider + file);
    } else if (typeof file === "object") {
      const key = Object.keys(file)[0];
      const value = file[key];
      stack = flutter(value, `${divider}${key}/`, stack);
    }
  }
  return stack;
};
 
console.log(flutter(structure, ""));

Предоставленное решение

const flutter = (arr, divider = "") => {
  let res = [];
 
  arr.forEach((element) => {
    if (typeof element === "string") {
      res.push(divider + element);
    } else {
      let keyArr = Object.keys(element).join("");
      divider += keyArr + "/";
 
      res.push(...flutter(element[keyArr], divider));
    }
  });
 
  return res;
};

Назад