Javascript js-通行证及;重新组合多值

Javascript js-通行证及;重新组合多值,javascript,function,parameters,Javascript,Function,Parameters,我不能在javascript返回语句中返回多个值。将这些值包装在js对象中是否有用?还是其他解决方案 function buildSomething() var t = []; var x = []; var y = []; var h = []; var myValues = fnGetData(t,y,x,h); function fnGetData(t,y,x,h) { // do something // return t,

我不能在javascript返回语句中返回多个值。将这些值包装在js对象中是否有用?还是其他解决方案

function buildSomething()


    var t = [];
    var x = [];
    var y = [];
    var h = [];

    var myValues = fnGetData(t,y,x,h);



function fnGetData(t,y,x,h) 
{

 //  do something 
 // return t,y,x,h

}   

仔细查看代码,您似乎试图将多个值传递到一个函数中。为此使用对象是JavaScript中的常见习惯用法

var values = {
    t: t,
    x: x,
    y: y,
    h: h
};
它还使处理默认数据变得容易

function fnGetData(data)  {
   data.t = data.t || [];
   data.x = data.x || ["default", "values"];
}
我不确定您是否在使用jQuery,但对于这一点,jQuery还有一个常见的习惯用法:

function fnGetData(data)  {
   $.extend(data, {
      t: [],
      x: ["intial", "values"]
   });
}

您可以选择将它们作为数组或对象返回,其中对象是更符合逻辑的选择,因为您可以为属性提供清晰的名称,从而产生更好的代码。

使用对象可能是最佳选择:

function getData(t, y, x, h) {
    // ...
    return {
        t: t,
        x: x,
        y: y,
        h: h
    };
} 

然后可以按名称访问返回对象中的任何值。

按照其他人的建议,从函数返回对象是非常常见的。我可能会走那条路。对象也更容易处理,并且不太可能污染全局范围

如果需要调用示例中的函数,另一个选项是返回数组。如果需要使用
function.apply使用返回的值调用函数,则返回数组非常方便<代码>函数。应用
获取数组并将其转换为函数参数

例如:

someFunc.apply(this, [t,x,y,h]);

然后将它们引用为myValues.t[n]?返回一个值数组<代码>返回[t,y,x,h]