我有一个像这样的函数(但有更多参数):
function do_something(n1, n2, n3){
return((n1-n2)*n3);
}
然后我有一个包含3个项目的数组,并且是该函数的参数:
my_array = [10,123,14];
例如,
do_something(my_array[0], my_array[1], my_array[2]);
以下可能不是JavaScript的有效代码,但我想要这样的内容,
do_something(for(var i = 0; i < my_array.length; i++){
add_parameter(my_array[i]);
});
那么,是否有任何有效的方法使数组的元素成为函数的参数?
答案 0 :(得分:5)
使用ES2015中引入的spread syntax:
my_array
这将传播 do_something
的元素作为my_array
的个别参数。如果10, 123, 14
包含do_something(10, 123, 14)
,则相当于调用do_something.apply(null /* the this value */, my_array);
。
当然,如果您想要支持ES5版本的Internet Exploder,您仍然可以使用Function#apply
:
apply
this
基本上做同样的事情。它接受一个参数数组并执行给定的函数,并将这些参数作为函数的单独参数(和self.storyboard
值)。
答案 1 :(得分:4)
let orm = {
selectAll: (tableName, callback)=>{
let queryString = "SELECT * FROM ??"
connection.query(queryString, tableName, (err, data)=>{
if (err){console.error("ERROR: " + err.stack)}
callback(data)
})
}
}
或使用ES2015 / ES6使用其他答案中提到的点差
do_something.apply(null, myArray);
;