如何使用JavaScript将对象存储在数组中
作者:互联网
我正在开发野生动物园浏览器.我想将当前活动的选项卡对象存储在数组中作为键.如何在数组中存储多个选项卡对象.
我写了下面的代码.
**第一种情况:
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]);**
在这里,我还为所有三个对象获取“ This is cTabObj3 Value”
提前致谢.
解决方法:
i want to store current active tab objects in a array as key
你不能那样做.键是字符串.它们始终是字符串.
如果看一下数组,您会发现任何对象都被转换为“ [object Object]”,因此您基本上插入了相同的键3次.
将console.log(arr)或console.dir(arr)与Firebug或chrome / opera / safari一起使用
您想要的是ES6 WeakMap.
仅Firefox6实现WeakMap
标签:safari-extension,javascript 来源: https://codeday.me/bug/20191013/1909917.html