изтриване на ред 2d масив въз основа на стойност втора колона

Имам viewScope с масив, например:

viewScope.myTest = [];
viewScope.myTest.push(["row1col1", "row1col2", "row1col3"]);
viewScope.myTest.push(["row2col1", "row2col2", "row2col3"]);
etc ..

Бих искал да направя нов масив viewScope, например viewScope.mySelection[] с всички стойности на първия масив viewScope, с изключение на тези, където например колона 2 съдържа "row1col2".

В ssjs не е възможно да се използва снаждане, така че това не е опция.

Намерих следния фрагмент на OpenNtf, но това изглежда не работи за моята ситуация: премахване на запис от масив

or is it ?


person Marc Jonkers    schedule 20.08.2015    source източник


Отговори (1)


Сървърните JavaScript масиви поддържат функцията за снаждане. Проблемът във вашия случай е, че при настройка на viewScope.myTest=[]; масивът (com.ibm.jscript.std.ArrayObject) се преобразува във вектор (java.util.Vector), който не поддържа функцията за снаждане. За да заобиколите това, можете

(A) използвайте функцията remove(n), за да премахнете n-тия елемент от вектора или

(B) запишете двуизмерния масив в подобект:

viewScope.myTest = { data:[] };
viewScope.myTest.data.push(["row1col1", "row1col2", "row1col3"]);
viewScope.myTest.data.push(["row2col1", "row2col2", "row2col3"]);

за да предотврати преобразуването във вектор и да може да използва splice(n,1) за премахване на n-тия ред.

person xpages-noob    schedule 24.08.2015