如何用一个函数返回多个值?

时间:2019-05-23 02:27:38

标签: javascript html function callback

我可以通过什么方式使该函数向我返回3个值,以便将这3个值用作另一个函数的输入参数(就好像它是一个回调-实际上,我认为这是-)?

直到现在,请尝试以下操作(尽管不起作用):

ArrayList<suitable_object_with_id>

5 个答案:

答案 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)

一个函数不能返回多个值。但是,您可以通过返回包含多个值的数组来获得类似的结果,如以下示例所示。 enter image description here

或者,如果要标记每个返回的值以便于维护,也可以返回object,如以下示例所示:

enter image description here

答案 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())