2016-03-16 5 views
1

Я получаю документы из вида. Я хотел бы перейти непосредственно к строке, как команда «GOTO» в Lotusscript; можно ли с помощью JavaScript?XPages goto nextEntry in While loop

var vec:NotesViewEntryCollection = database.getView("viewName").getAllEntries(); 
var entry:NotesViewEntry = vec.getLastEntry(); 
while (entry != null) 
{ 
     var subject:string = entry.getDocument().getItemValueString("subject"); 
     if (subject=="Title1") 
     { 
      goto prevEntry; 
     } 
     if (subject=="Title2") 
     { 
      goto prevEntry; 
     } 
     if (subject=="Title3") 
     { 
      //do something here...; 
     } 
    //prevEntry; 
     var tmpentry:NotesViewEntry = vec.getPrevEntry(entry); 
     entry.recycle(); 
     entry = tmpentry; 
} 

ответ

3

Это хорошо для кода JavaScript, что не имеет Гото.

continue Используйте вместо того, чтобы оставить текущую итерацию в цикле и для продолжения следующей итерации.

var vec:NotesViewEntryCollection = database.getView("viewName").getAllEntries(); 
var entry:NotesViewEntry = vec.getLastEntry(); 

var nextEntry = function() { 
    var tmpentry:NotesViewEntry = vec.getPrevEntry(entry); 
    entry.recycle(); 
    entry = tmpentry; 
    return entry != null; 
} 

if (entry != null) { 
    do { 
     var subject:string = entry.getDocument().getItemValueString("subject"); 
     if (subject=="Title1") { 
      //do 1...; 
      continue; 
     } 
     if (subject=="Title2") { 
      //do 2...; 
     } 
     //do 3...; 
    } while (nextEntry()) 
} 

Если предметом является «Название1», то оно будет //do 1....
Если предметом является «Заголовок 2», то он будет //do 2... и //do 3....

1

Я думаю, вы должны изменить свое утверждение if. если («TITLE3» .equals (субъект) { // сделать что-то } пойти на код и лозы к следующей записи

2

Этот код может быть уменьшен до:

var vec:NotesViewEntryCollection = database.getView("viewName").getAllEntries(); 
var entry:NotesViewEntry = vec.getLastEntry(); 
while (entry != null) 
{ 
    var subject:string = entry.getDocument().getItemValueString("subject"); 
    if (subject=="Title3") { 
     //do something here...; 
    } 
    //prevEntry; 
    var tmpentry:NotesViewEntry = vec.getPrevEntry(entry); 
    entry.recycle(); 
    entry = tmpentry; 
}