我可以通过什么方式使该函数向我返回3个值,以便将这3个值用作另一个函数的输入参数(就好像它是一个回调-实际上,我认为这是-)?
直到现在,请尝试以下操作(尽管不起作用):
ArrayList<suitable_object_with_id>
答案 0 :(得分:4)
您可以使用Spread运算符从第一个函数返回一个数组,并将每个元素作为独立参数传递给另一个函数。
var resultado;
function num_2(repet){
return [...Array(repet)].map((x,i) => i)
}
function sumarr(a,b,c){
return a + b + c
}
console.log("\n" + "callback 2: " + sumarr(...num_2(3)))
如果您难以理解第一个功能,那么它与
相同function num_2(repet){
let res = [];
for(let i = 0;i<repet;i++){
res.push(i)
}
return res;
}
答案 1 :(得分:2)
您有两个选择;返回JSON对象,返回数组。
返回JSON对象,您可以命名属性,然后修改第二个函数以接受该对象并访问属性;
var input = function() {
return {
a: 1,
b: 2
};
}
var output = function(obj) {
console.log(obj.a);
console.log(obj.b);
}
output(input());
返回数组并将其用作参数,以通过apply()或spread syntax调用函数
var input = function() {
return [1, 2];
}
var output = function(a, b) {
console.log(a);
console.log(b);
}
output.apply(this, input());
output(...input());
在控制台上打印以下内容,这些结果都相同;
1
2
答案 2 :(得分:2)
带有JS对象:
var Vals = Return3Values();
console.log( Vals.a, Vals.b, Vals.c );
function Return3Values()
{
return {a:5, b:'hello', c:15 }
}
答案 3 :(得分:2)
答案 4 :(得分:1)
如果您能够使用最新的JS功能,则可以在函数中使用Destructuring Assignment来解决此问题并清理代码。
function logLotsOfThings({thing1, thing2, thing3}) {
console.log(thing1, thing2, thing3)
}
function getLotsOfThings() {
return {
thing1: "I am thing 1",
thing2: "I am thing 2",
thing3: "I am thing 3"
}
}
logLotsOfThings(getLotsOfThings())