Aquí está una muestra de lo que me gustaría hacerAñadir dos matrices sin utilizar el método concat
function test(r){
var arr = ['d','e','f'];
r.push(arr);
/*
More Code
*/
return r;
}
var result = test(['a','b','c']);
alert(result.length);//I want this to alert 6
Lo que necesito hacer es pasar de una matriz y adjuntar otros arreglos para el final de la misma y luego devuelve la matriz. Debido a pasar por referencia, no puedo usar array.concat(array2);
. ¿Hay alguna manera de hacerlo sin usar algo como un ciclo for para agregar los elementos uno por uno? Intenté algo como r.push(arr.join());
pero eso tampoco funcionó. Además, me gustaría la opción de tener objetos en las matrices, así que realmente el r.push(arr.join());
no funciona muy bien.
uso interesante de 'apply' para empujar a todos los miembros de una matriz a otra matriz 1 – meouw
que habían visto el método se aplica antes, pero nunca realmente entendido (Nota para mí misma necesidad para estudiar sobre aplicar), pero ciertamente hace una forma concisa de hacer lo que yo quería. Sin embargo, ¿cómo difiere el segundo método del primero? Usando el Array.prototype en lugar de x.push.apply. – qw3n
Ambos son equivalentes. Llamar a 'x.push (y)' significa "llamar a la función' x.push' con scope 'x' y los argumentos' [y] '. En este caso,' x.push' se resuelve en 'Array.prototype.push' , por lo tanto: 'Array.prototype.push.apply (x, [y])'. Solo mencioné el segundo formulario, ya que a veces es preferible hacer referencia solo 'x' una vez. – emulbreh