Javascript Can';无法获取数组中的对象

Javascript Can';无法获取数组中的对象,javascript,arrays,Javascript,Arrays,我一直在尝试使用JavaScript数组按标题推送对象 像这样: var tab_temp = new Y.TabView( { srcNode: '#' + tabId } ); tabsArray['"' + type + "_" + subTypes + '"'] = tab_temp; 让我们来看一下type=“x”和subtype=“y”,因此当我编写类似以下内容时,我希望看到该对象: tabs["x_y"] 但这也有问题。当我调试时,我可以看到这个数组将保存一个对象“x_y”

我一直在尝试使用JavaScript数组按标题推送对象 像这样:

var tab_temp = new Y.TabView(
  { srcNode: '#' + tabId }
);
tabsArray['"' + type + "_" + subTypes + '"'] = tab_temp;
让我们来看一下
type=“x”
subtype=“y”
,因此当我编写类似以下内容时,我希望看到该对象:

tabs["x_y"]
但这也有问题。当我调试时,我可以看到这个数组将保存一个对象
“x_y”
,但数组的长度是
0

我不能使用推送,因为这样我需要使用索引来取回它,但这很困难,因为序列可能会改变

编辑1:

我之所以使用它,是因为我想保存几个TabView对象。否则,在它们创建之后,我无法到达这些对象。(阿洛尤伊)。我能够把这些物体推进阵列内部。如您所见,“Baru_BARANG”包含和以以下开头的对象:
s

编辑2:

谢谢你的帮助,我修好了。为此,我使用了
对象
而不是
数组

var tabs = {}
tabs[x + "_" + y] = "z";

我通过
tabs[x+““+y]
获取值,您很可能将
tabsArray
实例化为一个数组,即
var tabsArray=[]。这将导致观察到的行为

由于您希望自己定义键,因此应将其实例化为对象:

var tabsArray = {};
tabsArray['x_y'] = 'z';

您很可能将
tabsArray
实例化为一个数组,即
var tabsArray=[]。这将导致观察到的行为

由于您希望自己定义键,因此应将其实例化为对象:

var tabsArray = {};
tabsArray['x_y'] = 'z';

您确实需要阅读更多关于使用JavaScript中的对象的内容

先试试

var type=“x”;
var subType=“y”;
var tabsArray={};
tabsArray[类型+“”+子类型]=“z”;
console.log(“tabsArray=”);
console.log(tabsArray);
console.log(“tabsArray['x_y']=”+tabsArray['x_y']);//输出:z
//包括添加到问题中作为注释的代码:
var tabsArray=[];
var x=“x”;
var y=“y”;
tabsArray[x+“”+y]=“z”;
log(“tabsArray['x_y']=”+tabsArray['x_y']);
//tabsArray.length仍将为0。要设置。长度,可以使用:
对于(变量i=0;iconsole.log(“tabsArray.length=“+tabsArray.length”)您确实需要阅读更多关于使用JavaScript中的对象的内容

先试试

var type=“x”;
var subType=“y”;
var tabsArray={};
tabsArray[类型+“”+子类型]=“z”;
console.log(“tabsArray=”);
console.log(tabsArray);
console.log(“tabsArray['x_y']=”+tabsArray['x_y']);//输出:z
//包括添加到问题中作为注释的代码:
var tabsArray=[];
var x=“x”;
var y=“y”;
tabsArray[x+“”+y]=“z”;
log(“tabsArray['x_y']=”+tabsArray['x_y']);
//tabsArray.length仍将为0。要设置。长度,可以使用:
对于(变量i=0;iconsole.log(“tabsArray.length=“+tabsArray.length”)你如何初始化你的
选项卡数组
?你能粘贴完整的代码吗?你是否初始化数组?您是否使用“推送”或将值赋给数组?数组的
.length
0
,尽管您仍然可以使用
选项卡[“x_y”]
访问变量;考虑使用一个对象代替数组<代码>长度>代码>是代码> 0 因为数组没有任何元素。只有具有正整数属性名称的属性才被视为元素。您正在滥用数组作为映射。不要那样做。您可以改用
Map
。正如@torazaburo提到的,你似乎也对字符串感到困惑。字符串文字的引号不是值的一部分<代码>“x_y”
“x_y”
(这是通过
“+…+”
获得的)是两个不同的值。这可能会有帮助:@toranzaburo谢谢你的建议。1) 我想使用数组,因为我有两个对象要保存。2) 我需要string->value属性,因为我需要获取带有标题的对象。3) 我需要像这样使用['''''+x+'.'+y+'''''],因为否则它将不是字符串,我将有引用错误。4) 是的,也许我应该像你说的那样使用嵌套对象。因为字符串值不同,所以我可以这样使用。5) 我的基础英语很差。谢谢你的建议。你如何初始化你的
选项卡ray
?你能粘贴完整的代码吗?你是否初始化数组?您是否使用“推送”或将值赋给数组?数组的
.length
0
,尽管您仍然可以使用
选项卡[“x_y”]
访问变量;考虑使用一个对象代替数组<代码>长度>代码>是代码> 0 因为数组没有任何元素。只有具有正整数属性名称的属性才被视为元素。您正在滥用数组作为映射。不要那样做。您可以改用
Map
。正如@torazaburo提到的,你似乎也对字符串感到困惑。字符串文字的引号不是值的一部分<代码>“x_y”
“x_y”
(这是通过
“+…+”
获得的)是两个不同的值。这可能会有帮助:@toranzaburo谢谢你的建议。1) 我想使用数组,因为我有两个对象要保存。2) 我需要string->value属性,因为我需要获取带有标题的对象。3) 我需要像这样使用['''''+x+'.'+y+'''''],因为否则它将不是字符串,我将有引用错误。4) 是的,也许我应该像你说的那样使用嵌套对象。因为字符串值不同,所以我可以这样使用。5) 我的基础英语很差。谢谢你的建议。嗯,为什么tabarray是object?@SahinYanlık通读一下文档,你就会知道为什么。不,不,我知道什么是obj。等等,谢谢。帮助我,我不记得我可以使用点概念和字符串来获取元素。谢谢。嗯,为什么TabArray是对象?@SahinYan