Как на основе одного массива заменить элементы у другого массива?



@hifProg

Как на основе одного массива объектов заменить или отсортировать строки у другого массива?
Есть массив объектов arrObj отсортированный по parentId и form.order и есть массив строк arrStr.

const arrObj = [
  {
    form: {
        id: 3,
        order: 0,
        isReg: true
    },
    parentId: 19
},
{
    form: {
        id: 1,
        order: 1,
        isReg: true
    },
    parentId: 19
}, 
{
    form: {
        id: 5,
        order: 7,
        isReg: false
    },
    parentId: 19
}
{
    form: {
        id: 5,
        order: 1,
        isReg: true
    },
     parentId: 22
},
{
    form: {
        id: 2,
        order: 2,
        isReg: true
    },
     parentId: 22
},
{
    form: {
        id: 3,
        order: 0,
        isReg: true
    },
     parentId: 25
},
{
    form: {
        id: 1,
        order: 1,
        isReg: true
    },
     parentId: 25
},
]

const arrStr = [
   "155",
   "122",
   "1222",
   "1225",
   "119",
   "1191",
   "1195",
   "1193",
   "125",
   "1253",
   "1251",
]

Расшифровка строки в массиве «1222»
1 — какое то число, 22 — номер родителя (совпадает с parentId в массиве arrObj), 2 — id дочернего элемента (совпадает с id в form в массиве arrObj)

Массив arrObj отсортирован нужным образом на основе parentId и form.order где и должна соблюдаться последовательность id в массиве arrStr в соответствии с order (от меньшего к большему) в массиве arrObj , т.е массив arrStr должен выглядеть так

const arrStr = [
   "155",          // бывают 2-х уровневые их трогать не надо
   "122",          // группа начинается с номера родителя трогать не надо
   "1225",      // order 1 в массиве arrObj 
   "1222",      // order 2 в массиве arrObj 
   "119,
   "1193",     // order 0 в массиве arrObj
   "1191",     // order 1 в массиве arrObj
   "1195",     // order 7 в массиве arrObj
   "125",
   "1253",
   "1251",
]


Решения вопроса 0


Ответы на вопрос 0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *