2016-06-01 11 views
0

Der folgende Code gibt die Länge von allRows [] als 3 zurück, weil er 3 Arrays enthält. Ich versuche, ein letztes Array allRows zu erstellen.Mehrere Arrays in einen schieben, bildet ein zweidimensionales Array

getRows() { 
 
    return this.element.all(by.css(".xyz")).getText(); 
 
    } 
 

 
    getTotalRows() { 
 
    const allRows = []; 
 

 
    for (let i = 0; i < 3; i++) { 
 
     allRows.push(this.getRows()); 
 
     this.scrollDown(); 
 
     this.waitToLoad(); 
 
    } 
 
    return allRows; 
 
    }

Eigentlich getRows() ist ein Array von Versprechungen zurückkehrt. Nach Änderungen an meinem Code hat das Problem behoben

getRows() { 
 
    return this.pinnedRows.getText(); 
 
    } 
 

 
    getTotalRows() { 
 
    const defer = Promise.defer(); 
 
    let allRows = []; 
 

 
    for (let i = 0; i < 3; i++) { 
 
     this.getRows().then((rows) => { 
 
     allRows = allRows.concat(rows); 
 
     this.scrollDown(); 
 
     this.waitToLoad(); 
 
     if (i === 2) { 
 
      defer.resolve(allRows); 
 
     } 
 
     }); 
 
    } 
 
    return defer.promise; 
 
    }

+0

Mögliche Duplikat [zum Zusammenführen von zwei Arrays in Javascript und Deduplizierung Artikel] (http://stackoverflow.com/questions/1584370/how-to-merge-two-arrays-in-javascript-and-de-duplicate-items) –

Antwort

2

Pushing einen Index erstellt, was Sie wollen, ist concat()

+0

Ich versuchte concat, aber es war leere Array zurückgeben. Lass es mich nochmal versuchen und sehen, ob ich es falsch mache. – kumarvarun

+0

allRows = allRows.concat (this.getRows()); – epascarello

+0

gerade versucht dies ... auch das ist Array von Arrays zurück :( – kumarvarun