J'utilise Google Web Tools, et j'ai un JsArray
, que je remplis avec des données de JSON. Je suis en mesure de modifier des éléments dans le tableau et d'ajouter des éléments, mais je ne peux pas comprendre comment supprimer un élément de celui-ci. Je cherche quelque chose de similaire à la méthode pop()
en JavaScript.Comment supprimer un élément d'un JsArray dans Google Web Tools?
je peux ajouter un élément au tableau en utilisant la méthode set(index,value)
avec un index
qui est hors de portée du tableau, donc j'essayé d'utiliser set(index,null)
pour l'enlever, mais le tableau a encore l'élément, il est juste nul. (ie la longueur du tableau est inchangée.)
J'utilise actuellement une méthode hacky dans laquelle je crée un nouveau tableau, et copie tous les éléments sauf le dernier de l'ancien vers le nouveau, mais j'espère Je n'ai pas à vivre avec ça, parce que c'est moche.
private final JsArray<JsArrayInteger> popItemFromArray(
JsArray<JsArrayInteger> oldArray) {
// the createEmpty... method is a native method which returns eval("[]")
JsArray<JsArrayInteger> newArray = createEmptyIntIntArray();
for (int i = 0; i < oldArray.length() - 1; i++) {
newArray.set(i, oldArray.get(i));
}
return newArray;
}
Je ne vois pas de méthode 'shift()' - à moins que ce ne soit une blague qui soit passée par-dessus ma tête - mais étendre la classe 'JsArray' fait l'affaire. – sernaferna
Peut-être parce que j'utilise ma propre version 2.0-SNAPSHOT, mais je suis sûr que ma version de 'com.google.gwt.core.client.JsArray' a une méthode 'shift()' (bien sûr, c'est aussi simple que la méthode 'pop()', vous pouvez donc l'ajouter facilement). –