Я хотел бы вызвать функцию с помощью массива в качестве параметров:
const x = ['p0', 'p1', 'p2'];
call_me(x[0], x[1], x[2]); // I don't like it
function call_me (param0, param1, param2 ) {
// ...
}
Есть ли лучший способ передать содержание x
в call_me()
?
const args = ['p0', 'p1', 'p2'];
call_me.apply(this, args);
См. Документацию MDN для Function.prototype.apply ()
.
Если среда поддерживает ECMAScript 6, вы можете использовать вместо него аргумент распространения :
call_me(...args);
Почему бы вам не передать весь массив и не обработать его по мере необходимости внутри функции?
var x = [ 'p0', 'p1', 'p2' ];
call_me(x);
function call_me(params) {
for (i=0; i<params.length; i++) {
alert(params[i])
}
}
Предполагая, что call_me является глобальной функцией, поэтому вы не ожидаете, что это будет установлено.
var x = ['p0', 'p1', 'p2'];
call_me.apply(null, x);