2014-01-18 101 views
1

我有這樣的:避免通話功能很多次

function myalert(x) 
{ 
    alert("hey + " x) 
} 

我打電話有不同參數的機能缺失

myalert("A"); 
myalert("B"); 
myalert("C"); 
myalert("A"); 
myalert("B"); 
myalert("C"); 
myalert("A"); 
myalert("B"); 
myalert("C"); 

我能夠避免重複醜?

update = 但是如果2個參數呢?我將如何製作你正在談論的「LIST」? 例子:

function myalert(x,y) 
{ 
    alert(y + "hey + " x) 
} 

myalert("A", "X"); 
myalert("B", "X"); 

我怎樣才能讓這個名單?

+1

傳入列表或數組和循環的值? – Rob

+0

你在尋找for循環嗎? – ssilas777

+0

你是什麼意思的兩個參數?例如 – thefourtheye

回答

0

將所有參數放入數組中,然後使用循環。

var params = ['A', 'B', 'C']; 

for (var i = 0, l = parmas.length; i < l; i++) { 
    myalert(params[i]); 
} 

或:

['A', 'B', 'C'].forEach(function(e) { 
    myalert(e); 
}); 
+0

您還需要重複這3次。 – Barmar

+0

@Barmar僅舉一個例子。我認爲op只是使用虛擬代碼而不是真實的。 – xdazz

1

循環播放。你可以使用arguments和他們的計數arguments.length得到函數參數。

function myalert() 
{ 
    var count = arguments.length; 
    for(var i = 0; count > i; i++) { 
    alert("hey + " + arguments[i]); 
    } 
} 

myalert('a', 'b', 'c'); // alerts a, alerts b, alerts c 
+0

+1雖然我發佈了一個答案,但你的答案更好:)謝謝你 –

0
myalert(['A', 'B', 'C']); 

function myalert(dataArray) 
{ 
    dataArray.forEach(function(e) { 
    alert("hey " + x); 
    }); 
}