Issue
I need to combine all the possible arrays of object in javascript.
There are different levels of arrays with values, and it has to be mixed in all the possible ways.
I think I should go for a recursive call but not familiar with it.
Please help me to figure this out.
For the clear question, here is input and output example.
Input:
[
[{
level: 1,
value: "a"
}, {
level: 1,
value: "b"
}],
[{
level: 2,
value: "c"
}, {
level: 2,
value: "d"
}],
[{
level: 3,
value: "e"
}, {
level: 3,
value: "f"
}]
]
Expected Output:
[
[{
level: 1,
value: "a"
}, {
level: 2,
value: "c"
}, {
level: 3,
value: "e"
}],
[{
level: 1,
value: "a"
}, {
level: 2,
value: "c"
}, {
level: 3,
value: "f"
}],
[{
level: 1,
value: "a"
}, {
level: 2,
value: "d"
}, {
level: 3,
value: "e"
}],
[{
level: 1,
value: "a"
}, {
level: 2,
value: "d"
}, {
level: 3,
value: "f"
}]
[{
level: 1,
value: "b"
}, {
level: 2,
value: "c"
}, {
level: 3,
value: "e"
}],
[{
level: 1,
value: "b"
}, {
level: 2,
value: "c"
}, {
level: 3,
value: "f"
}],
[{
level: 1,
value: "b"
}, {
level: 2,
value: "d"
}, {
level: 3,
value: "e"
}],
[{
level: 1,
value: "b"
}, {
level: 2,
value: "d"
}, {
level: 3,
value: "f"
}]
]
Solution
How about simply iterating over all levels you have and know? Then you can store triplets and are guaranteed to have each possibility
options = []
for (const level1 of levels[0]) {
for (const level2 of levels[1] {
for (const level3 of levels[2] {
options.push([level1, level2, level3])
}
}
}
Answered By – ted
This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0