簡體   English   中英

如何在我的函數參數中使對象數組調用每個對象的函數?

[英]How can I make an array of object in my function parameter call a function for each object?

我創建了以下checkGrid函數,該函數先進行計數,然后再進行另外兩個參數的處理。 這是一個在selectOption調用中進行硬編碼的解決方案,並且不夠靈活:

checkGrid = function(expectCount, typeParam, selectParam) {

   it('Check', function () {
      selectOption('examTypeSelect', typeParam).click();
      selectOption('examStatusSelect', selectParam).click();
    });

}
checkGrid(10, '*', '*');

現在,我想使其更加靈活,以便它接受任意數量的selectOption函數的參數。 所以我在想可以這樣稱呼的東西。 在這里,我需要的是checkGrid函數調用selectOption三次:

checkGrid(10, [{'examTypeSelect','*'}
               {'examStatusSelect', '*'},
               {'abcSelect','29'}]);

我怎樣才能接受作為checkGrid的第二個參數的數組對象,並使其根據數組中有多少個元素來調用任意數量的selectOption函數?

通過在數組上循環並使用.apply調用具有可變數量參數的每個函數。

checkGrid = function(expectCount, stuff) {
    it('Check', function () {
        for (var i = 0; i < stuff.length; ++i) {
            selectOption.apply(this, stuff[i]).click();
        }
    });
}

您不會使用建議的語法來調用它(這是無效的),而是

checkGrid(10, [
                ['examTypeSelect','*'],
                ['examStatusSelect', '*'],
                ['abcSelect','29','and','perhaps','more','parameters']
              ]
          );

最后,目前尚不清楚expectCount應該做些什么,但是我把它留在那里了,因為您的原始代碼大概可以對它做些什么

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM