在JavaScript中是否可以返回1个以上的值/对象/数组?

在JavaScript中是否可以返回1个以上的值/对象/数组?,javascript,return,Javascript,Return,这段代码可以工作,但我不知道JavaScript是否正确执行返回值大于1。所以,如果在JavaScript中可以返回一个函数,那么可能还可以返回多个值/对象/数组 function Person (name, age) { this.name = name; this.age = age; } var ageDifference = function(person1, person2) { return person1.age - person2.age; }; fu

这段代码可以工作,但我不知道JavaScript是否正确执行返回值大于1。所以,如果在JavaScript中可以返回一个函数,那么可能还可以返回多个值/对象/数组

function Person (name, age) {
    this.name = name;
    this.age = age;
}

var ageDifference = function(person1, person2) {
    return person1.age - person2.age;
};

function olderAge(person1, person2)
{
    if (person1.age>person2.age) return person1.age;
    else if (person1.age<person2.age) return person2.age;
    else if (person1.age===person2.age) **return person1.age || person2.age;**
}


var alice = new Person("Alice", 30);
var billy = new Person("Billy", 25);

console.log("The older person is " + olderAge(alice, billy));
职能人员(姓名、年龄){
this.name=名称;
这个。年龄=年龄;
}
变量年龄差异=函数(person1,person2){
返回person1.age-person2.age;
};
功能等级(人员1、人员2)
{
如果(person1.age>person2.age)返回person1.age;

else if(person1.ageNo,严格来说只能返回一个对象/数组/值

如果您需要这样做,您将返回一个包含多个结果的对象

以该函数为例:

var function = testFunction() {
  var a = "some string";
  var b = ['some', 'array'];
  var c = { some: 'object'};

  return {
    itemOne: a,
    itemTwo: b,
    itemThree: c,
  };
};
然后,您可以通过以下方式访问结果:

testFunction().itemOne     // returns "some string"
testFunction().itemTwo     // returns ['some', 'array']
testFunction().itemThree   // returns { some: 'object'}
或:


当您返回多个值时,您希望发生什么情况?不清楚您的要求是什么。如果函数返回两个值,会是什么样子?您将如何访问它们?这与返回一个值数组有什么不同?您只能从一个函数返回一件事。但您可以有多个返回语句如果函数中有,则只执行第一个
truthy
return语句。由于alice比billy大,因此
olderAge
将返回person1.age。在本例中,如果未检查
子句,则返回另外两个
else。正如Juhana所说,如果要从函数。如果不将switch或if/else语句包装到函数中,则无法返回它们。但是在函数中返回switch语句与返回值映射/数组是一样的。如果您指的是:
return person1.age | | person2.age;
,则返回1个值,即or运算符中的
|
在许多级别上都是错误的,如果年龄相等,只返回其中一个。在我的示例代码中,如果Alice和Billy都是20岁,而我只想返回他们的年龄(所以是20岁)?如何返回两个或多个对象的公共参数?我的意思是在我的第三个else if语句中,如果person1.age和person2.age是相同的,那么只返回它们的公共年龄。我应该只返回“return person1.age;”还是“return person2.age;”,不管是哪一个?这不是干净的代码:)
var result = testFunction();

result.itemOne             // returns "some string"
result.itemTwo             // returns ['some', 'array']
result.itemThree           // returns { some: 'object'}