Actualmente estoy haciendo un desafío en el que tenemos que volver a implementar varios métodos de matriz sin usar los métodos de matriz incorporados. Los he hecho casi todos excepto el concat. Con el concat, debemos asegurarnos de que devuelva una sola matriz con cada elemento de las entradas con respecto a los parámetros.
function newConcat(...item) { let newArray = [...item]; return newArray; }Esto funciona en su mayor parte, pero cuando toma arreglos, los mantiene separados, por lo que termina siendo un arreglo de arreglos en lugar de solo un arreglo grande que ha sido concatenado.
Lo hice usando el operador de propagación, respetando la definición de los parámetros de su función:
function newConcat(...arrays) { let result = []; for(let x = 0; x < arrays.length; x++) { result = [...result, ...arrays[x]]; // using spread } return result; } console.log(newConcat([1, 2, 3], [4, 5, 6]));No estoy seguro de si su desafío aceptará el operador de propagación, por lo que hay una versión de código más simple:
function newConcat(...arrays) { let result = []; for(let x = 0; x < arrays.length; x++) { const item = arrays[x]; for(let y = 0; y < item.length; y++) { result.push(item[y]); } } return result; } console.log(newConcat([1, 2, 3], [4, 5, 6]));