2012-05-01 51 views
2

我有兩個問題: 1)是否有可能刪除jsarray中的任何值或僅彈出方法的最後一個? 2)我如何從jsarray中刪除或刪除一個值?有人可以發表一個例子嗎? 這樣的事情在這裏如何從GWT中的jsarray中刪除值?

public JsArray<MyObject> myObjects = JavaScriptObject.createArray().cast(); 
myObjects.push(new MyObject("Good")); 
myObjects.push(new MyObject("morning")); 
myObjects.push(new MyObject("people")); 
myObjects.delete(1); 

THX很多!

回答

4

陣列中的JavaScript是稀疏,所以你不能,例如,從中取出一個對象,有以下的向上移動,以降低指數(像你在Java中有一個List爲例);至少不要用一些刪除的方法。

僅使用GWT Java,您可以將特定索引處的值設置爲null,但就是這樣。

使用JSNI,你可以刪除它(幾乎等同於將其設置爲undefineddelete myObjects[1]),或者你可以將其刪除:

public static native remove(JsArray<?> arr, int index, int count) /*-{ 
    arr.splice(index, count); 
}-*/; 
+0

任何想法,爲什麼[它不會在這裏工作(HTTP://計算器的.com /問題/ 36229909 /獲取-未捕獲-類型錯誤-ARR-O-G-剪接是-值爲非功能)? :/ – displayname