如何在javascript中返回两个对象值[重复]

Posted

技术标签:

【中文标题】如何在javascript中返回两个对象值[重复]【英文标题】:how to return two object values in java script [duplicate] 【发布时间】:2015-02-26 14:29:08 【问题描述】:

我知道java脚本是动态语言,我想知道是否有选项 返回类似于

的内容
 Inte.prototype.getM = function(sMethod) 
     return  this._mMet[sMet].ret && 
     return this._mMeth[sMet].ret.default;
  ;

目前,当我按原样尝试时出现错误(这并不奇怪 :))。

【问题讨论】:

创建另一个包含这两个值的对象并返回它! 返回一个对象(或数组) 将它们推入数组并返回 【参考方案1】:

你可以返回一个数组:

 return  [this._mMet[sMet].ret,this._mMeth[sMet].ret.default];

或通过一个对象:

return  'one': this._mMet[sMet].ret, 'two': this._mMeth[sMet].ret.default;

编辑

根据 OP 评论,他希望对这些值进行一些验证:

if (typeof this._mMet[sMet].ret == 'undefined' || typeof this._mMeth[sMet].ret.default == 'undefined')  
    return false; 
 else  
    return  'one': this._mMet[sMet].ret, 'two': this._mMeth[sMet].ret.default;

【讨论】:

只是最后一个问题假设我使用第二个我应该如何验证 this._mMet[sMet].ret && this._mMet[sMet].ret.defult 有值,因为当他们 undefiend 我得到错误 退货前。只需做一个 if 语句。 if (typeof this._mMet[sMet].ret == 'undefined' || typeof this._mMeth[sMet].ret.default == 'undefined') //do something for eg return false, else //add them to the object and return 能否更新为答案 我已经编辑了我的答案。【参考方案2】:

你只能退回一件东西。但也可以是数组:

Inte.prototype.getM = function(sMethod) 
     return  [this._mMet[sMet].ret, this._mMeth[sMet].ret.default];
  ;

【讨论】:

【参考方案3】:

你可以返回一个对象

Inte.prototype.getM = function(sMethod) 
     return 
         ret: this._mMet[sMet].ret,
         retDefault: this._mMeth[sMet].ret.default
    ;
;

然后你可以使用它访问它

var returnObject = inte.getM(arguements);
var ret = returnObject.ret //equvalent to returnObject['ret'];
var retDefault= returnObject.retDefault //equivalent to returnObject['retDefault'];

【讨论】:

【参考方案4】:

您可能需要使用对象数组吗? 例如:

var array = [];
array.push(this._mMet[sMet].ret);
array.push(this._mMet[sMet].ret.default);
return array;

【讨论】:

【参考方案5】:

最好的办法是

function a()
     var first=firstObject;
     var second=secondObject;
     return first:first,second:second;

然后使用

a().first // first value
a().second // second value

【讨论】:

【参考方案6】:

尝试返回数组:

Inte.prototype.getM = function(sMethod) 
     return new Array(this._mMet[sMet].ret,this._mMeth[sMet].ret.default);
;

【讨论】:

以上是关于如何在javascript中返回两个对象值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Lodash / javascript:比较两个集合并返回差异[重复]

在 Javascript 中,如何检查数组是不是有重复值?

如何从javascript中的函数返回值[重复]

如何在对象数组中获取 1 到 n 键值并将它们推送到新数组?(Javascript)[重复]

如何从对象数组中获取键值列表-JavaScript [重复]

如何在javascript数组中存储所有包括重复(非唯一)对象?