2014-01-18 3 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"); 

я могу избежать этого уродливого повторения?

обновление = Но что, если 2 параметра? Как я могу сделать «СПИСОК», о котором вы говорите? Пример:

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

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

Как я могу сделать список этого?

+1

Pass значения в виде списка или массива и цикл? – 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

Loop это. Вы можете получить аргументы функции, используя 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 Хотя я отправил ответ, но ваш ответ лучше :) Спасибо u –

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

function myalert(dataArray) 
{ 
    dataArray.forEach(function(e) { 
    alert("hey " + x); 
    }); 
} 
Смежные вопросы