我有一个这样的功能(但有更多的参数):
function do_something(n1, n2, n3){
return((n1-n2)*n3);
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个包含3个项目的数组,并且是该函数的参数:
my_array = [10,123,14];
Run Code Online (Sandbox Code Playgroud)
例如,
do_something(my_array[0], my_array[1], my_array[2]);
Run Code Online (Sandbox Code Playgroud)
以下可能不是JavaScript的有效代码,但我想要这样的东西,
do_something(for(var i = 0; i < my_array.length; i++){
add_parameter(my_array[i]);
});
Run Code Online (Sandbox Code Playgroud)
那么,是否有任何有效的方法使数组的元素成为函数的参数?
使用ES2015中引入的扩展语法:
do_something(...my_array);
Run Code Online (Sandbox Code Playgroud)
这会将各个参数的元素分散my_array到do_something.如果my_array包含10, 123, 14它将等同于调用do_something(10, 123, 14).
当然,Function#apply如果您想要支持ES5版本的Internet Exploder ,您仍然可以使用:
do_something.apply(null /* the this value */, my_array);
Run Code Online (Sandbox Code Playgroud)
apply基本上做同样的事情.它接受一个参数数组并执行给定的函数,并将这些参数作为函数(和this值)的单独参数.
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |