为了账号安全,请及时绑定邮箱和手机立即绑定

返回JavaScript中的多个值?

返回JavaScript中的多个值?

慕雪6442864 2019-07-13 16:39:14
我试图在JavaScript中返回两个值。这有可能吗?var newCodes = function() {       var dCodes = fg.codecsCodes.rs;     var dCodes2 = fg.codecsCodes2.rs;     return dCodes, dCodes2;};
查看完整描述

3 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

否,但可以返回包含值的数组:

function getValues() {
    return [getFirstValue(), getSecondValue()];}

然后您可以这样访问它们:

var values = getValues();var first = values[0];var second = values[1];

最新的ECMAScript 6语法*,您还可以更直观地构造返回值:

const [first, second] = getValues();

如果要在每个返回的值上放置“标签”(易于维护),可以返回一个对象:

function getValues() {
    return {
        first: getFirstValue(),
        second: getSecondValue(),
    };}

并进入:

var values = getValues();var first = values.first;var second = values.second;

或者使用ES6语法:

const {first, second} = getValues();

*见这张桌子为了浏览器兼容性。基本上,除了IE之外,所有现代浏览器都支持这种语法,但是您可以在构建时使用如下工具将es6代码编译成与IE兼容的JavaScript


查看完整回答
反对 回复 2019-07-13
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

您可以从Javascript 1.7开始使用“销毁作业”..请注意,在较早的Javascript版本(意为ECMAScript第3版和第5版)中没有这些内容。

它允许您同时为1+变量赋值:

var [x, y] = [1, 2];x; // 1y; // 2// or[x, y] = (function(){ return [3, 4]; })();x; // 3y; // 4

您也可以使用对象破坏与属性值速记相结合若要命名对象中的返回值并选择所需的值,请执行以下操作:

let {baz, foo} = (function(){ return {foo: 3, bar: 500, baz: 40} })();baz; // 40foo; // 3

顺便说一句,不要被ECMAScript允许你return 1, 2, .....真正发生的并不是表面上可能发生的事情。回报语句中的一个表达式-1, 2, 3-只是一个逗号运算符应用于数字文本(1 , 2,和3),最终计算出它的最后一个表达式的值-3..怪不得return 1, 2, 3在功能上与return 3.

return 1, 2, 3;// becomesreturn 2, 3;// becomesreturn 3;


查看完整回答
反对 回复 2019-07-13
  • 3 回答
  • 0 关注
  • 477 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信