Estoy tratando de encontrar una manera de resolver esta pregunta usando reducer , escriba una función llamada merge que tome una o más matrices como parámetros y devuelva la combinación combinada con todos los duplicados eliminados y con los valores ordenados en orden ascendente
var a = ["alpha", "charlie", "delta"] var b = ["bravo", "delta"] var c = "["golf", "delta"] var d = ["foxtrot", "delta", "echo", "alpha"] merge(a,b) returns ["alpha", "bravo", "charlie", "delta"] merge(a,b,c,d) returns ["alpha","bravo","charlie","delta","echo","foxtrot","golf"] var a = ["alpha", "charlie", "delta"] var b = ["bravo", "delta"] var c = "["golf", "delta"] var d = ["foxtrot", "delta", "echo", "alpha"] function merge(...arr){ const mergedArr = [...arr]; const sortArr = mergetAr.sort(); const reducedArr = sortArr.reduce((arr, sortArr) => { return },[]) } merge(a,b)Puede flatten la matriz y usar Set para filtrar los duplicados.
var a = ["alpha", "charlie", "delta"] var b = ["bravo", "delta"] function merge(...arr){ const sortArr = [...new Set(arr.flat())].sort(); console.log('sortArr', sortArr); } merge(a,b);En lugar de tomar directamente los argumentos, páselos en una matriz. Eso le permitirá recorrer n número de argumentos sin ninguna restricción de la siguiente manera:
function merge(arrayOfArrays) { const set = new Set(); // to remove duplicates for (const array of arrayOfArrays) { set.add(...array); } return [...set].sort(); }Fragmento de trabajo:
var a = ["alpha", "charlie", "delta"]; var b = ["bravo", "delta"]; var c = ["golf", "delta"]; var d = ["foxtrot", "delta", "echo", "alpha"]; function merge(arrayOfArrays) { const set = new Set(); // to remove duplicates for (let array of arrayOfArrays) { array.forEach(item => set.add(item)) } return [...set].sort(); } console.log(merge([a, b, c, d]));La solución va más abajo.
var a = ["alpha", "charlie", "delta"] var b = ["bravo", "delta"] var c = ["golf", "delta"] var d = ["foxtrot", "delta", "echo", "alpha"] var all_array = a.concat(b).concat(c).concat(d); //combine all arrays var uniq_array = [...new Set(all_array)]; // remove all duplicates uniq_array = uniq_array.sort(); //soert the unique array in ascending order console.log(uniq_array)