We are required to write a JavaScript function that takes in any number of arrays of literals. The function should compute and return an array of cartesian product of all the elements from the arrays separating them with a dash('−').
Example
The code for this will be −
const arr1= [ 'a', 'b', 'c', 'd' ]; const arr2= [ '1', '2', '3' ]; const arr3= [ 'x', 'y', ]; const dotCartesian = (...arrs) => { const res = arrs.reduce((acc, val) => { let ret = []; acc.map(obj => { val.map(obj_1 => { ret.push(obj + '−' + obj_1) }); }); return ret; }); return res; }; console.log(dotCartesian(arr1, arr2, arr3));
Output
And the output in the console will be −
[ 'a−1−x', 'a−1−y', 'a−2−x', 'a−2−y', 'a−3−x', 'a−3−y', 'b−1−x', 'b−1−y', 'b−2−x', 'b−2−y', 'b−3−x', 'b−3−y', 'c−1−x', 'c−1−y', 'c−2−x', 'c−2−y', 'c−3−x', 'c−3−y', 'd−1−x', 'd−1−y', 'd−2−x', 'd−2−y', 'd−3−x', 'd−3−y' ]