• JavaScript (рекурсия) Как из одного массива (каталог) сделать другой (дерево)?

    @Rysakov Автор вопроса
    СПАСИБО ЗА ОТВЕТ!
    ВСЕ ОТЛИЧНО!

    Но нашел багу :( , когда совпадает название модели и название фирмы, группировка не работает в этот момент.

    console.log(JSON.stringify(reduceToTree([
      {
        "path": "name=Tel6,g=tovarov,g=catalog",
        "id": "6000",
        "name": "Tel6"
      },
      {
        "path": "name=Tel1,f=Samsung,g=tovarov,g=catalog", // f= неограниченная вложенность
        "id": "1000",
        "name": "Tel1"
      },
    
      // ...
      {
        "path": "name=<b>Galaxy</b>,g=tovarov,g=catalog", // f= неограниченная вложенность
        "id": "2001",
        "name": "Galaxy"
      },
    
      // ТУТ РУШИТЬСЯ ГРУППИРОВКА
      {
        "path": "name=a1,f=<b>Galaxy</b>,g=tovarov,g=catalog", // f= неограниченная вложенность
    
        "id": "345345",
        "name": "a1"
      },
      {
        "path": "name=a2,f=<b>Galaxy</b>,g=tovarov,g=catalog", // f= неограниченная вложенность
    
        "id": "567756756",
        "name": "a2"
      },
      // ...
    
      {
        "path": "name=Tel_8,f=Tel_2,g=tovarov,g=catalog", // f= неограниченная вложенность
        "id": "2002",
        "name": "Tel_8"
      },
      {
        "path": "name=Tel_88,f=Tel_2,g=tovarov,g=catalog", // f= неограниченная вложенность
        "id": "2007",
        "name": "Tel_88"
      },
      {
        "path": "name=Tel3,f=Galaxy,f=Samsung,g=tovarov,g=catalog", // f= неограниченная вложенность
        "id": "3000",
        "name": "Tel3"
      },
      {
        "path": "name=Tel4,f=A,f=Samsung,g=tovarov,g=catalog", // f= неограниченная вложенность
        "id": "4000",
        "name": "Tel4"
      },
      {
        "path": "name=Tel5,f=A,f=Samsung,g=tovarov,g=catalog", // f= неограниченная вложенность
        "id": "5000",
        "name": "Tel5"
      }
      // ...
    ])));


    a1 и a2 не сгруппировадись в отдельную группу Galaxy
    5d33dd25e9cb5319931904.jpeg
  • JavaScript (рекурсия) Как из одного массива (каталог) сделать другой (дерево)?

    @Rysakov Автор вопроса
    Как сделать с 1 уровнем понятно, а как сделать рекурсию, чтоб неограниченные вложения были не понимаю
    f= это уровень вложенности получается
  • JavaScript (рекурсия) Как из одного массива (каталог) сделать другой (дерево)?

    @Rysakov Автор вопроса
    Не, это массив на выходе (дерево), я просто обрезал для примера под одну фирму (Samsung), а там и другие.