Javascript 从数组中获取未定义的值

Javascript 从数组中获取未定义的值,javascript,Javascript,谈话是廉价的;我宁愿显示代码: //global var var siblings = []; var rand = new Date().getTime(); siblings.push('uin_' + rand); alert(siblings['uin_' + rand]); // undefined 为什么没有定义?我基本上想要实现的是拥有一个全局对象,它将是一个存储库,用于保存关于其他对象的信息。但是回到我的问题上来。我按下了该值,然后我想提醒它,但未定义。。。为什么未定义?.p

谈话是廉价的;我宁愿显示代码:

//global var
var siblings = [];

var rand = new Date().getTime();
siblings.push('uin_' + rand);
alert(siblings['uin_' + rand]); // undefined

为什么没有定义?我基本上想要实现的是拥有一个全局对象,它将是一个存储库,用于保存关于其他对象的信息。但是回到我的问题上来。我按下了该值,然后我想提醒它,但未定义。。。为什么未定义?

.push将其追加到数组中,
兄弟[0]
包含它,因为它是(以前)空数组中的第一个元素

如果您想自己确定密钥,请执行以下操作

siblings = {};
siblings['key'] = 'something';
否则,如果要访问每个元素,请在数组中循环

for ( var l = siblings.length, i = 0; i<l; ++i ) {
   alert( siblings[i] )
}

for(var l=sibbines.length,i=0;i
sibbines
是一个数组。您将值
'uin\uu'+rand
推到它上面,因此键将是
0
。相反,您希望创建一个对象

var siblings={};
var rand=+new Date();
siblings['uin_'+rand]="something";
alert(siblings['uin_' + rand]);

因为您将字符串值推送到数组索引
0
,然后尝试获取数组对象上的不存在属性


尝试使用。

为了访问数组,您需要使用数组索引,它基本上指的是您是否需要1、2、3等


在这种情况下,请使用
同级[0]

,因为
同级
是一个数组,而不是关联数组。两种解决方案:

//global var - use as an array
var siblings = [];

var rand = new Date().getTime();
siblings.push('uin_' + rand);
alert(siblings[0]); // undefined

//global var - use as an associative array
var siblings = {};

var rand = new Date().getTime();
siblings.push('uin_' + rand);
alert(siblings['uin_' + rand]); // undefined

你希望看到什么价值?当有疑问时,试着用它来看看。