À l'aide de es6 propagation de la concaténation de plusieurs tableaux
Nous savons tous que vous pouvez faire:
let arr1 = [1,2,3];
let arr2 = [3,4,5];
let arr3 = [...arr1, ...arr2]; //[1,2,3,3,4,5]
Mais comment faire pour que cette dynamique de la concaténation de N tableaux?
vous pouvez stocker les tableaux dynamiques dans un tableau ...
ou un objet avec des tableaux de valeurs. Impossible pour itérer inconnu qté de variables individuelles
Pourquoi avez-vous de l'utilisation de la propagation de l'opérateur? Le
N'Tableau.le prototype.concat pas faire pour vous? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
Euh, ohh donc ES5ify
ou un objet avec des tableaux de valeurs. Impossible pour itérer inconnu qté de variables individuelles
Pourquoi avez-vous de l'utilisation de la propagation de l'opérateur? Le
concat
méthode fonctionne encore...N'Tableau.le prototype.concat pas faire pour vous? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
Euh, ohh donc ES5ify
Function.prototype.call.bind(Array.prototype.concat)
🙂OriginalL'auteur danday74 | 2017-04-17
Vous devez vous connecter pour publier un commentaire.
Une option est d'utiliser
reduce
:De sûr, c'est un lent solution (quadratique du temps). Alternativement, si vous pouvez utiliser Lodash,
_.flatten
fait exactement ce que vous voulez, et il le fait de manière plus efficace (temps linéaire).MODIFIER
Ou adaptés à partir de Xotic750 de commentaire ci-dessous,
Qui doit être efficace (temps linéaire).
Array.prototype.concat.apply([], arr)
Bien que ce n'est pas à l'aide de la propagation de l'opérateur.Sympa, mais vous pouvez le faire en utilisant la propagation de l'opérateur! Voir mon edit.
OriginalL'auteur Brian McCutchon
Vous ne pouvez pas le faire avec la propagation de la syntaxe seul, comme la propagation de la syntaxe exige de vous que vous savez combien de tableaux vous concaténez à l'avance. Cependant, vous pourriez écrire la fonction suivante:
Il ne sera probablement pas très efficace, bien que (l'utilisation répétée de la propagation de la syntaxe est O(n2)). À l'aide de
Array.prototype.concat
serait mieux. Il vous suffit de faire:OriginalL'auteur Pedro Castilho
Selon es6
OriginalL'auteur KARTHIKEYAN.A