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

时间:2015-08-06 11:33:19

标签: 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;
};

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));

如果是,我不知道(但我认为这很愚蠢) - 如果我可以返回switch或if / else语句呢?但是,我认为这没有任何意义。

1 个答案:

答案 0 :(得分:2)

不,严格来说,你只能返回一个对象/数组/值。

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

以此功能为例:

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'}

或者:

var result = testFunction();

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