J'ai besoin d'ajouter ou de préciser des éléments au début d'un tableau.
Par exemple, si mon tableau se présente comme suit:
[23, 45, 12, 67]
Et la réponse de mon appel AJAX est de 34
, je veux que le tableau mis à jour soit comme suit:
[34, 23, 45, 12, 67]
Actuellement, je prévois de le faire comme ceci:
var newArray = []; newArray.push(response); for (int i = 0; i < theArray.length; i++) { newArray.push(theArray[i]); } theArray = newArray; delete newArray;
Y a-t-il une meilleure façon de le faire? Est-ce que JavaScript possède une fonctionnalité intégrée qui fait cela?
La complexité de ma méthode est O(n)
et il serait vraiment intéressant de voir de meilleures implémentations.
Utiliser un unshift
. C'est comme une push
, sauf qu'il ajoute des éléments au début du tableau au lieu de la fin.
unshift
/ push
– ajoute un élément au début / fin d'un tableau shift
/ pop
– supprime et renvoie le premier / dernier élément et le tableau Un schéma simple …
unshift -> array <- push shift <- array -> pop
Et tableau:
add remove start end push XX pop XX unshift XX shift XX
Consultez la documentation MDN Array . Pratiquement toutes les langues qui ont la possibilité de pousser / des éléments pop à partir d'un tableau auront également la capacité de désaisonner / déplacer (parfois appelé push_front
/ pop_front
) des éléments, vous ne devriez jamais avoir à les mettre en œuvre.
var a = [23, 45, 12, 67]; a.unshift(34); console.log(a); // [34, 23, 45, 12, 67]
...
: var arr=[23, 45, 12, 67] ; arr=[34,...arr]; // RESULT : [34,23, 45, 12, 67]
Quick Cheatsheet:
Les termes shift / unshift et push / pop peuvent être un peu confus, du moins pour les personnes qui ne connaissent peut-être pas la programmation de C.
Si vous n'êtes pas familiarisé avec le jargon, voici une traduction rapide de termes alternatifs, qui peuvent être plus faciles à retenir:
* array_unshift() - (aka Prepend ;; InsertBefore ;; InsertAtBegin ) * array_shift() - (aka UnPrepend ;; RemoveBefore ;; RemoveFromBegin ) * array_push() - (aka Append ;; InsertAfter ;; InsertAtEnd ) * array_pop() - (aka UnAppend ;; RemoveAfter ;; RemoveFromEnd )
Une autre façon de le faire via concat
var arr = [1, 2, 3, 4, 5, 6, 7]; console.log([0].concat(arr));
Vous avez un tableau: var arr = [23, 45, 12, 67];
Pour ajouter un élément au début, vous souhaitez utiliser l' splice
:
var arr = [23, 45, 12, 67]; arr.splice(0, 0, 34) console.log(arr);