创建数组并在一行中将其推入其中

2024-03-27

以下只是一个理论上的 JavaScript 问题。我很好奇以下内容是否可以转换为单个语句:

if(!window.foo){
  window.foo = [];
}
window.foo.push('bar');

这段代码大家可能都写过,但是一行能完成吗?
起初我以为这样的事情会起作用:

(window.foo || window.foo = []).push('bar');

但这不起作用,因为分配无效。接下来,我尝试在推送上链接某些内容,但这不起作用,因为推送不返回数组。

有什么想法可以用纯 JavaScript 来完成吗?
(顺便说一句,结果应该是window.foo = ['bar'])


你的任务已经倒退了*。它应该是:

(window.foo = window.foo || []).push('bar');

The ||JavaScript 中的运算符不返回布尔值。如果左侧为真,则返回左侧,否则返回右侧。

a = a || [];

相当于

a = a ? a : [];

因此,编写上述内容的另一种方法是:

(window.foo = window.foo ? window.foo : []).push('bar');

* 详情见评论

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

创建数组并在一行中将其推入其中 的相关文章

随机推荐

  • 如何将两个 Android Activity 绑定到一个 Service?

    我想询问一些示例 其中两个不同的活动 第一个活动中的按钮打开第二个活动 正在与一个服务 AIDL 等 进行通信 我尝试过许多不同的教程 但它们只是关于如何进行一项活动 一项服务 这可能已经很旧了 但我还是会尝试回答它 在 Android 中
  • 我在 Spring 安全测试中遇到 stackOverflowError

    安全配置类 Configuration EnableGlobalMethodSecurity prePostEnabled true public class SecurityConf Bean public AuthenticationM
  • Java 模式匹配器组定义

    我有一个简单的正则表达式 看起来像 a z a z 0 9 它适用于匹配模式 例如 test a 1 b 2 c 3 有没有办法在单独的匹配器组中捕获每个名称 值对 例如 a 1 正如上面的示例所示 我得到了 test 的一个匹配器组 并且
  • 获取计算机名称[重复]

    这个问题在这里已经有答案了 我想获取当前的计算机名称 这是我的代码 Public Function GetComputerName As String Dim ComputerName As String ComputerName Syst
  • 如何在小部件层次结构中找到多个相同类型的小部件?

    我正在为我的一个 flutter web 应用程序开发一些集成测试 我想考虑从上到下的方法 在下面的小部件层次结构树中专门定位容器 宽度 50 高度 50 ParentWidget gt 行 gt 文本 SizedBox 行 gt Cont
  • 通过 XML 任务与 SSIS 进行数据转换

    我使用了简单的 Web 服务来添加数字 并将结果返回到变量中 格式如下
  • 使用 Malloc 在 C 中定义结构

    我问了一个早些时候提问 https stackoverflow com questions 2177391 allocating memory for a structure in c关于使用 malloc 定义结构 这是大多数人给我的答案
  • 如何在 ASP.NET MVC 项目中指定默认应用程序池?

    在我的 ASP NET MVC 项目中 我添加了一个parameters xml 文件 如下所示
  • momentjs 中两个时间之间的小时差(HH:MM:SS a)

    我有两次没有约会 var startTime 12 16 59 am var endTime 06 12 07 pm 我想通过使用来显示上述时间之间的总小时数moment js 如果不可能在moment js那么请让我知道使用javascr
  • DataGridViewCell 在更改焦点之前不会更新

    我的 DataGridView 有这个事件 当按下删除键时 它应该将 CurrentCell Value 变为 null 实际上 它确实有效 但在我更改选定 聚焦的单元格之前 该值不会改变 如何修改才能立即更新 这是我的代码 private
  • 无法在 C# 中运行禁用邮箱 Powershell

    我正在尝试用 C 重现 Powershell 的以下工作块 我们正在连接 Exchange2010 实例 ExURI http ExchangeUrl PowerShell Session New PSSession Configurati
  • 更改 onclick 事件,JavaScript 不起作用

    我有这个 function tp visible action if action 1 document getElementById tp style display block document getElementById tp ac
  • 按点击付费断点

    如何在 PPC 上 具体来说 在 OS X 上 实现断点 例如 在 x86 上 通常使用 INT 3 指令 0xCC 完成 对于 ppc 是否有与此类似的指令 或者还有其他设置 实施的方式吗 使用 gdb 和一个十六进制转储自身的函数 我得
  • 返回 Activity 而不重新创建(不调用 onCreate())

    我想问类似的问题 返回上一屏幕而不创建新实例 https stackoverflow com questions 11715848 go back to previous screen without creating new instan
  • 如何在 Rails 的 ERB 模板中使用 `<%=` 来修剪最后出现在 `pre` 元素中的前导空白?

    据我在这里研究 这不是一个重复的问题 修剪空格 通常是尾随换行符 正在讨论 但不适合 结果是 HTML 输出为 p strong Code strong p pre class highlight github span class kt
  • 使用 GAS 获取相当于持续时间的数字

    我有一个具有持续时间类型值的单元格 我已将值设置为 00 10 00 即 10 分钟 当我将单元格的格式更改为数字时 它将显示 0 01 如何以编程方式使用应用程序脚本获得与使用应用程序脚本代码相同的十进制等效值 00 10 00 是 0
  • HQL:按可空属性的属性排序

    假设有两个表 A a id b id and B b id c 我需要执行表单的 HQL 查询 From A a ORDER BY a b c while b在类中可以为空A 但是 该查询仅返回以下实例A其中有非空b财产 发生这种情况是因为
  • GC过多时如何更快OOM? [复制]

    这个问题在这里已经有答案了 有时 我的 JVM 会耗尽内存 但我可以从中恢复 或 heapDumpOnOOM 和调试 的 OOMing 它往往会在 GC 中颠簸数小时 然后抛出内存不足 这本质上与 未回答的 问题相同 如何配置 Java G
  • 计算 Laravel 中的坐标距离

    我的模型中有一个创建别名的范围 我需要在其上执行一个 where 我知道 MySql 不允许这样做 标准 SQL 不允许您在 WHERE 中引用列别名 条款 施加此限制是因为当 WHERE 代码为 执行后 列值可能尚未确定 但是 我想知道
  • 创建数组并在一行中将其推入其中

    以下只是一个理论上的 JavaScript 问题 我很好奇以下内容是否可以转换为单个语句 if window foo window foo window foo push bar 这段代码大家可能都写过 但是一行能完成吗 起初我以为这样的事