我正在使用 Google Web Tools ,并且拥有JsArray
,我正在填充来自JSON的数据。我可以修改数组中的项目并向其添加项目,但我无法弄清楚如何从中删除项目。我正在寻找与JavaScript中的pop()
方法类似的东西。
我可以使用set(index,value)
方法将一个项添加到数组中,index
超出数组的范围,所以我尝试使用set(index,null)
删除它,但数组仍然有项目,它只是空。 (即数组的长度不变。)
我目前正在使用一种hacky方法,我创建一个新数组,并将除最后一个元素之外的所有元素从旧版本复制到新版本,但我希望我不必忍受它,因为它太丑了。
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;
}
答案 0 :(得分:1)
没有pop()
,但有...... shift()
:)
要么扩展JsArray
类,要么像这样(未经测试,但你应该明白这一点):
public class JsArrayPop<T extends JavaScriptObject> extends JsArray<T> {
protected JsArrayPop() {
}
public final native T pop() /*-{
return this.pop();
}-*/;
}