[Vuejs]-How can make a list from matrix in javascript?

1👍

Look at this, might be helpful:

const input_array = [
    ["black", "blue"],
    ["large", "medium"],
    ["a", "b", "c"]
    //... is it dynamic can be added many rows
];
const mmc = input_array.reduce((e, r) => e * r.length, 1);
const finallist = input_array.map((x,i)=>({index:i,arr:x})).reduce((e, r) => {
    for (var u = 0; u < mmc; u++) e[u] && (!r.arr.some(r => e[u].includes(r)) || e[u].length <= r.index) ? e[u].push(r.arr[u % r.arr.length]) : e.push([r.arr[u % r.arr.length]]);
    return e.sort(), e
}, []);

Careful! This might break your browser in large matrix scales.

1👍

You can do something like this:

const input_array = [
    ["black", "blue"],
    ["large", "medium"],
    ["a", "b", "c"]
]
const getCompinations = array =>
  array.reduce((v, b) =>
    v.reduce((r, g) => [...r, ...b.map(w => [].concat(g, w))], [])
  )
console.log(getCompinations(input_array))

Leave a comment