在一个函数中返回两个变量[重复]

2024-04-25

考虑以下代码(demo http://jsfiddle.net/m59Fg/):

function test(){
   var h = 'Hello';
   var w = 'World';
   return (h, w);

}

var test = test();

alert(test);

执行函数时test只返回第二个值(即'World')。如何让它返回多个值?


您无法从单个函数显式返回两个变量,但可以通过多种方式连接这两个变量以返回它们。

如果不需要将变量分开,可以直接将它们连接起来,如下所示:

function test(){
  var h = 'Hello';
  var w = 'World';
  var hw = h+w 
  return (hw);
}
var test = test();
alert(test);

这将提醒“HelloWorld”。 (如果你想在那里有一个空间,你应该使用var hw = h+" "+w反而。

如果需要将两个变量分开,可以将它们放入数组中,如下所示:

function test(){
  var h = "Hello";
  var w = "World";
  var hw=[h,w];
  return hw;
}
var test = test();
alert(test);

这允许h and w值仍然可以单独访问test[0] and test[1], 分别。然而,由于alert() 处理数组的方式(即它按顺序打印数组中每个元素的逗号分隔列表),这里的alert(test) 将显示“Hello,World”。如果您想产生与示例代码相同的输出,您需要使用类似的东西join(). join()将从数组构造一个字符串,它需要一个参数作为元素之间的分隔符。要重现我的第一个示例中的两个警报,您需要使用alert(test.join("")) and alert(test.join(" "), 分别。

我的示例可以通过跳过创建来稍微缩短hw变量并直接返回一个数组。在这种情况下,test() 看起来像这样:

function test(){
  var h="Hello";
  var w="World";
  return [h, w];
}

这也可以作为一个对象来完成return { h : h, w : w };,在这种情况下,您将分别访问各个变量作为 test.h 和 test.w。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在一个函数中返回两个变量[重复] 的相关文章

随机推荐

  • 谷歌地图定位是如何工作的?

    我的问题是谷歌地图或移动 GPS 如何找到我的当前位置 读完本文后我的高层次理解article http www physics org article questions asp id 55就是 GPS接收器通过这些卫星获取位置坐标 该位
  • 如何将数组(在 VB6 中通过引用)传递给 C\C++ *.dll 子例程?

    我需要将一个空的变体数组传递给一个用 C 编写的 DLL 并且在所有 Windows 版本上都可用 并且 C 代码 我无法控制也无法编辑 将用它的一些返回值填充空的变体数组价值观 基本上 当我尝试这样做时 ByRef 数组在应包含函数 子调
  • 如何使用 php 注销后终止会话

    我看到了以下问题并尝试调整部分答案 但没有成功 用户按注销并销毁会话后如何禁用后退浏览器按钮 我知道这个话题已经被广泛讨论 人们讨厌 禁用后退按钮 这句话 但是 如果我有一个包含重要信息的数据库 一旦该人注销 我如何防止某人按下后退按钮并返
  • 使用 sprintf 打印元素数量可变的向量

    在下面的代码中 我可以打印向量中的所有元素item用空格分隔为 item 123 456 789 sprintf d d d item ans 123 456 789 我怎样才能做到这一点而不必输入那么多 d作为元素的数量item 最简单的
  • AWS S3 列表键以字符串开头

    我在 AWS Lambda 函数中使用 python 列出以特定 id 开头的 s3 存储桶中的键 for object in mybucket objects all file name os path basename object k
  • 使用 Electron 和 Systemjs 导入节点模块

    我只是想知道如果系统js在自己的注册表中找不到该模块 是否可以让systemjs使用require remote require nodemodule 我认为当使用带有 typescript 和 commonjs 模块的 Electron
  • 一个包中的多个模块导入一个公共模块

    我正在写一个 python 包 我使用插件的概念 每个插件都是 Worker 类的专门化 每个插件都被编写为模块 脚本 并在单独的进程中生成 由于插件之间的基本共性 例如 所有插件都扩展基类 Worker 插件模块通常如下所示 import
  • 为什么 VBA 中的 GetValue 函数使用单元格“A1”?

    我正在使用此函数从关闭的工作簿中检索值 在此代码的第 8 行中 我不明白为什么使用 A1 整个第 8 行到底发生了什么 我也对 xlR1C1 的论点感到困惑 Private Function GetValue path file sheet
  • 使用 C# 将 JSON 字符串从 Camel 大小写转换为 Pascal 大小写

    我有一个 JSON 字符串 它的密钥采用驼峰式大小写形式 但我需要将密钥转换为帕斯卡式大小写 实际的 JSON 字符串 string jsonString personName firstName Emma lastName Watson
  • Android TabWidget 检测当前选项卡的点击

    我正在尝试找到一种方法 当该选项卡是当前选项卡时 能够在该选项卡上触发 onclick 事件 我确实尝试过这种方式 以及其他几种方式 但没有成功 public void onTabChanged String tabId Log d thi
  • 在 Java 中使用 JSON 的 HTTP POST

    我想在 Java 中使用 JSON 制作一个简单的 HTTP POST 假设网址是www site com 它接受值 name myname age 20 标记为 details 例如 我将如何创建 POST 语法 我似乎也无法在 JSON
  • 背景 x 重复负边距重叠

    实际上是我关于堆栈的第一个问题 我试图在重复背景上获得负 右 边距 这样重复图像之间就不会出现间隙 似乎没有 CSS 语法来实现这一点 为了清楚起见 我在下面添加了一张图片 所以我试图让类似饼干的东西的重复图像重叠 这样它们之间就没有间隙
  • 如果我们在更大的表中使用广播会发生什么?

    我想知道如果我们广播较大的表并将其加入到较小的表中会发生什么 另外 如果我们有两个同样大的表 在这种情况下使用广播连接会发生什么 有几件事需要考虑 火花上限 Spark支持最大8GB的广播表 如果你的广播对象超过这个数量 它就会失败 驱动程
  • 最新的CEDET版本无法加载语义包

    我在加载 Alex Ott 推荐的一些语义包时遇到问题他著名的 CEDET 指南 http alexott net en writings emacs devenv EmacsCedet html使用最新版本的 CEDET 时 我之前的设置
  • 在Python 3中从CGI输出二进制数据

    这个问题与this one https stackoverflow com q 908331 554319 我在从 Python 2 中的 CGI 脚本打印原始二进制数据时没有遇到任何问题 例如 usr bin env python2 im
  • 一元加号和减号运算符的重要用途是什么?

    如果一元 运算符用于执行转换Number 转换函数 那么为什么我们需要一元运算符呢 这些一元运算符有什么特殊需要 一元论 运算符将其操作数转换为 Number 类型 一元论 运算符将其操作数转换为 Number 类型 然后将其取反 根据EC
  • Sublime 代码折叠注释(如 Ace 中)

    在 Cloud9 基于 Ace 编辑器 中 我可以在注释中定义任意代码折叠区域 例如 Descriptor function Code 折叠为 Descriptor lt gt 在这里尝试看看我的意思 http ace c9 io buil
  • ModelClientValidationRule 冲突

    我已将 vs 2011 开发人员预览版与 vs 2010 并排安装 现在 当我在 vs 2010 中运行我的 asp net mvc 3 项目时 我在使用 ModelClientValidationRule 的项目中收到以下错误 Syste
  • 在线代码美化器和格式化程序[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在一个函数中返回两个变量[重复]

    这个问题在这里已经有答案了 考虑以下代码 demo http jsfiddle net m59Fg function test var h Hello var w World return h w var test test alert t