将关联数组声明为一个新的Array()与将关联数组声明为对象{}相同?

问题描述:

在两种情况下对象whiteStripes是否完全相同?将关联数组声明为一个新的Array()与将关联数组声明为对象{}相同?

var whiteStripes = {'Jack' : 'White', 'Meg' : 'White'}; 

var whiteStripes = new Array(); 
whiteStripes['Jack'] = 'White'; 
whiteStripes['Meg'] = 'White'; 
+4

有在JavaScript – Musa

+0

'VAR白色条纹=新的对象()没有关联数组;'将是同样的事情,但不能以'新阵列()'。 – Pointy

+0

http://*.com/questions/8067590/associative-array-versus-object-in-javascript的副本 – nullability

虽然你仍然可以在两种情况下访问属性的方法相同(whiteStripes['Jack'])在声明whiteStripes = new Array();你说的它拥有所有的特性,像length例如数组的属性。如果您不打算将它用作真实数组(poppush,length等),则不要使用JavaScript数组。

不,它不是完全一样的东西。

两者都会工作,因为一个数组是也是的一个对象,但是如果你只想要一个对象,你不应该创建一个数组来获得一个。

这将导致完全一样的东西被创造:

var whiteStripes = {'Jack' : 'White', 'Meg' : 'White'}; 

var whiteStripes = new Object(); 
whiteStripes['Jack'] = 'White'; 
whiteStripes['Meg'] = 'White';