2016-06-01 7 views
0

次のコードは、3つの配列を持つためallRows []の長さを3に戻します。私は最終的な配列allRowsを構築しようとしています。複数の配列を1つにプッシュすると2次元配列が形成されます

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; 
 
    }

実際GETROWS()は、約束の配列を返します。私のコードに変更を次の問題

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

可能な重複していますitems](http://stackoverflow.com/questions/1584370/how-to-merge-two-arrays-in-javascript-and-de-duplicate-items) –

答えて

2

プッシュが一つのインデックスを追加して固定している、あなたがしたいことはJavascriptとデ - 二重に二つの配列をマージする[方法のconcat()

+0

私はコンカットを試みましたが、空の配列を返していました。私にもう一度試してみて、私がそれを間違ってやっているかどうか見てみましょ – kumarvarun

+0

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

+0

これを試してみました...これでも配列の配列を返す:( – kumarvarun

関連する問題