返回两个字符串值的javascript函数,如何做到这一点?

返回两个字符串值的javascript函数,如何做到这一点?,javascript,jquery,collections,Javascript,Jquery,Collections,我需要存储如下所示的值: “somekey”:“value1”、“value2” 所以我想创建一个函数,它将接受“somekey”,并返回“value1”、“value2” 它不必是一个函数,它可以是一个集合,我可以在javascript文件中初始化它,然后引用它,如: var v1 = blah("somekey").value1; var v2 = blah("somekey").value2; 我知道这是可能的,只是我还不知道如何处理这件事 您可以从函数返回一个对象 function g

我需要存储如下所示的值:

“somekey”:“value1”、“value2”

所以我想创建一个函数,它将接受“somekey”,并返回“value1”、“value2”

它不必是一个函数,它可以是一个集合,我可以在javascript文件中初始化它,然后引用它,如:

var v1 = blah("somekey").value1;
var v2 = blah("somekey").value2;

我知道这是可能的,只是我还不知道如何处理这件事

您可以从函数返回一个对象

function getTwoValues()
{
    return ['value1', 'value2'];
}

var values = getTwoValues();
alert("Value 1 is " + values[0]);
alert("Value 2 is " + values[1]);
function getTwoValues()
{
    return {
        value1 : 'value1', 
        value2 : 'value2'
    };
}
这样你就可以

var v1 = getTwoValues().value1; // 'value1'
var v2 = getTwoValues().value2; // 'value2'

tvor演示了如何使用数组执行此操作。如果你有兴趣创建一个像你用“废话”概括的“集合”,你可以创建一个对象

var blah = {};
blah["somekey"] = {value1:"foo", value2:"bar"};
alert(blah["somekey"].value1);
alert(blah["somekey"].value2);
为了保持整洁,我想您还可以包括一个“Tuple”对象:

此外,由于javascript中的“关联数组”实际上是对象,如果静态地获取特定值(如注释中提到的RUS),则可以使用对象表示法:


虽然这对于从关联数组中动态获取值不是很有用。

@josh-在map的第二个属性之后缺少一个
。还可以执行
map.somekey.value1
等操作来获取值创建一个函数(如Russ Cam所说)还有创建闭包的额外好处,允许您在返回包含值的对象之前在函数中进行一些私有处理。
function Tuple(value1, value2) {
  this.value1 = value1;
  this.value2 = value2;
}

blah["somekey"] = new Tuple("foo", "bar");
var map = {
    somekey: {value1: "value1", value2: "value2" },
    somekey2: {value1: "value21", value2: "value22" },
    somekey3: {value1: "value31", value2: "value32" }
};

alert(map["somekey"].value1);
alert(map["somekey3"].value2);
map.somekey.value1