Как на основе одного массива объектов заменить или отсортировать строки у другого массива?
Есть массив объектов 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 = [
"1\55",
"1\22",
"1\22\2",
"1\22\5",
"1\19",
"1\19\1",
"1\19\5",
"1\19\3",
"1\25",
"1\25\3",
"1\25\1",
]
Расшифровка строки в массиве "1\22\2"
1 - какое то число, 22 - номер родителя (совпадает с parentId в массиве arrObj), 2 - id дочернего элемента (совпадает с id в form в массиве arrObj)
Массив arrObj отсортирован нужным образом на основе parentId и form.order где и должна соблюдаться последовательность id в массиве arrStr в соответствии с order (от меньшего к большему) в массиве arrObj , т.е массив arrStr должен выглядеть так
const arrStr = [
"1\55", // бывают 2-х уровневые их трогать не надо
"1\22", // группа начинается с номера родителя трогать не надо
"1\22\5", // order 1 в массиве arrObj
"1\22\2", // order 2 в массиве arrObj
"1\19,
"1\19\3", // order 0 в массиве arrObj
"1\19\1", // order 1 в массиве arrObj
"1\19\5", // order 7 в массиве arrObj
"1\25",
"1\25\3",
"1\25\1",
]