如何使用javascript将对象存储在数组中

2023-12-08

我正在开发 Safari 浏览器的扩展。我想将当前活动选项卡对象存储在数组中作为键。如何在数组中存储多个选项卡对象。

我写了以下代码。

**第一个场景:

var obj = {};

obj1=new Object();
obj2=new Object();
obj3=new Object();

obj['cTab_'+obj1] = "This is object1";
obj['cTab_'+obj2] = "This is object2";
obj['cTab_'+obj3] = "This is object3";**

问题是我得到了第三个对象值。如何获取所有对象的值。

**第二种情况:

var arr = new Array();

cTabObj1 = new Object();
arr[cTabObj1] = 'This is cTabObj1 Value';

cTabObj2 = new Object();
arr[cTabObj2] = 'This is cTabObj2 Value';

cTabObj3 = new Object();
arr[cTabObj3] = 'This is cTabObj3 Value';

alert("arr[cTabObj1]    :" + arr[cTabObj1] + " arr[cTabObj2]    :" + arr[cTabObj2] + " arr[cTabObj3]    :" + arr[cTabObj3]);**

我也在这里得到“这是 cTabObj3 值”对于所有三个对象

提前致谢。


我想将当前活动选项卡对象存储在数组中作为键

你不能那样做。键是字符串。它们始终是字符串。

如果您查看该数组,您会发现任何对象都被转换为"[object Object]"所以你基本上插入相同的密钥 3 次。

Use console.log(arr) or console.dir(arr)与 firebug 或 chrome/opera/safari 一起使用

你想要的是ES6WeakMap.

仅Firefox6实现WeakMap

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

如何使用javascript将对象存储在数组中 的相关文章

随机推荐

  • 修剪字符串开头和结尾的空格

    我正在尝试找到一种方法来修剪标题字符串开头和结尾的空格 我正在使用这个 但它似乎不起作用 title title replace s s g 有任何想法吗 注 截至 2015 年 所有主流浏览器 包括IE gt 9 都支持String pr
  • 使用 twinx 时定义宽高比

    如何设置使用的绘图的纵横比twinx 下面我举三个例子 without twinx突出显示我如何设置宽高比 仅与twinx说明如何重置先前定义的宽高比 我尝试定义两者的长宽比y使用时的轴twinx 这不起作用 我正在使用 matplotli
  • 在显示日期时,如何停止在 GridView 中显示时间?

    我正在开发一个 Web 应用程序 ASP NET 2 0 和 C 其中 我有一个从 Oracle 数据库获取数据的 gridview 我需要显示的一些数据是日期 但是当我的 gridview 中的日期显示如下时 2009 04 02 00
  • 传单圆半径根据 y/lng 坐标而变化

    我使用地图框 传单来显示人体图片而不是常规地图 我正在使用传单绘制 我需要能够创建一个圆并在保持其半径的同时移动它 然而 当我将其移向地图 屏幕底部时 大小呈指数级增加 我希望它保持相同的大小 我认为这与投影或 CRS 有关 但我不确定如何
  • jenkins 无法安装插件 - docker image

    以下是 jenkins 镜像 2 190 2 版本 中用于安装插件的相关片段 FROM jenkins jenkins 2 190 2 Add jenkins plugin COPY plugins txt usr share jenkin
  • 与 HashMap 一起使用[重复]

    这个问题在这里已经有答案了 我有一个 java 类 它将 servlet 属性设置为 HashMap 对象 request setAttribute types da getSecurityTypes where request是一个 Ht
  • 如何使用 JUnit 测试 ConfigurationProperties?

    这是我第一次使用外部化配置和 yaml 我创建了一个 yaml 其中使用类名作为 KEY 字段名称作为 VALUE YAML project test service computator exclude field from beeing
  • boost::named_mutex:最后一个进程关闭时安全清理

    我有一个资源 需要保护一个进程内以及多个进程之间的访问 我通过创建一个命名互斥体来管理这个问题boost interprocess named recursive mutex 而且效果很好 include
  • 尝试将 PDT 中的日期时间解析为 ZonedDateTime 表示形式

    我应该如何解析 PDT 时区中的日期时间值 06 24 2017 07 00 AM PDT 我想保留时区 以便我可以根据网站访问者的偏好来表示其他时区的时间 我尝试使用ZonedDateTime但我收到解析错误 java time Zone
  • 415 在 ajax 调用 Spring mvc 中发送 json 对象时不支持的媒体类型

    我正在从 ajax 调用将 json 对象发送到 spring mvc 控制器 这是我发送到控制器的 json 对象 id 7 priority 8 startTime 2015 09 23 01 01 00 0 我的ajax调用 ajax
  • 如何改进 for 循环而不导致运行时超时,

    我目前正在开发一个项目 该项目使用大约 500 个循环交叉验证 2 张工作表 ROSTER First Name Last Name DoB Judith Barragan 4 10 1959 Kelly Benitez 9 14 1993
  • MacOS excel 中的这段代码相当于什么?

    有人可以建议使用等效的代码吗Mac 版 Excel这会产生与下面在 Windows 中相同的结果吗 Path CreateObject WScript Shell SpecialFolders Desktop ActiveWorkbook
  • 如何使用 OnItemClickListener 根据单击的项目启动新意图?

    我希望能够使用 Intent 类启动新活动 我知道如何使用以下代码行启动活动 Intent myIntent new Intent v getContext bylocationactivity class startActivityFor
  • 不能使用可变变量作为安全函数的参数

    下面的脚本无法编译 它抛出错误Cannot use a mutable variable as an argument of the security function我不明白为什么 我在安全函数中使用的参数不是可变变量 当我注释掉该行时h
  • Chrome 应用程序中的无限文件存储

    我想将无限数量的文件保存到用户的硬盘驱动器 而不需要用户单击对话框 我见过的关于使用无限存储的唯一文档在这里 https developers google com chrome whitepapers storage 它表示它仅适用于 C
  • 左连接和内连接的性能差异

    左连接和内连接在性能方面有什么区别吗 我使用 SQL Server 2012 至少有一种情况LEFT OUTER JOIN是一个更好的选择 INNER JOIN 我谈到使用获得相同的结果OUTER代替INNER 示例 我正在使用Advent
  • .vimrc 文件中的 是什么?

    I see
  • 更改页面时 PdfBox 问题

    我不太喜欢问这类问题 但是 我已经花了整整 3 天时间试图解决我的代码中的这个错误 我知道这是一个逻辑问题 我知道如何在脑海中解决它 但是当涉及到将我的想法转化为代码时 我就是无法让它按照我想要的方式工作 我正在处理一份合同背书 合同的修改
  • Azure Devops - 服务器端 git hooks

    我们如何实现服务器端挂钩或任何类似的解决方案来限制 git 推送到 git 服务器 例如 我们想要禁用包含 class 文件的提交推送 我不认为 Azure DevOps 使用钩子 您可以使用分行政策利用外部验证服务 据我所知 这使用网络挂
  • 如何使用javascript将对象存储在数组中

    我正在开发 Safari 浏览器的扩展 我想将当前活动选项卡对象存储在数组中作为键 如何在数组中存储多个选项卡对象 我写了以下代码 第一个场景 var obj obj1 new Object obj2 new Object obj3 new