Я использую Google Web Tools и имею JsArray
, который я заполняю данными от JSON. Я могу изменять элементы в массиве и добавлять к нему элементы, но я не могу понять, как удалить из него. Я ищу что-то похожее на метод pop()
в JavaScript.Как удалить элемент из JsArray в Google Web Tools?
Я могу добавить элемент в массив с помощью set(index,value)
метода с index
, который находится вне диапазона массива, поэтому я попытался с помощью set(index,null)
, чтобы удалить его, но массив еще есть элемент, это просто пустое. (т. е. длина массива не изменилась.)
В настоящее время я использую хакерский метод, с помощью которого я создаю новый массив и копирую все элементы, кроме последнего, от старого к новому, но я надеюсь Мне не нужно с этим жить, потому что это уродливо.
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;
}
Я не вижу метод 'shift()', если только это не шутка, которая прошла по моей голове, но расширение класса 'JsArray' делает трюк. – sernaferna
Возможно, это потому, что я использую свою собственную сборку 2.0-SNAPSHOT, но я уверен, что моя версия 'com.google.gwt.core.client.JsArray' имеет метод 'shift()' (конечно, это так же просто, как метод 'pop()', поэтому вы можете легко добавить его). –