在javascript中创建对象数组
我是从.NET背景学习javascript的。我有一个关于如何处理对象数组的问题,创建和操作不像.NET那么容易/明显 在.NET代码中,我经常使用结构(c#)或结构(VB.NET)来管理简单的值构造,例如(在VB.NET中): 在我所做的研究中,javascript中没有任何完全等效的东西,尽管您可以使用一个对象并将其“推”到一个数组上,如下所示:在javascript中创建对象数组,javascript,arrays,object,Javascript,Arrays,Object,我是从.NET背景学习javascript的。我有一个关于如何处理对象数组的问题,创建和操作不像.NET那么容易/明显 在.NET代码中,我经常使用结构(c#)或结构(VB.NET)来管理简单的值构造,例如(在VB.NET中): 在我所做的研究中,javascript中没有任何完全等效的东西,尽管您可以使用一个对象并将其“推”到一个数组上,如下所示: var widget = new Object(); var widgetTemplates = new Array();
var widget = new Object();
var widgetTemplates = new Array();
widgetTemplates.push(widget);
widgetTemplates[0].name = "compass";
widgetTemplates[0].LocX = 35;
widgetTemplates[0].LocY = 312;
alert(widgetTemplates[0].name); // also shows 'compass'
也许我不习惯使用更松散类型的语言,但上面的JavaScript似乎并不理想(例如,必须将没有声明结构的对象“推”到数组中,然后初始化变量,再加上用于删除的“pop”和“slice”)
我说得对吗?是否有更好或更简单的方法来声明和使用对象数组?我还研究了JSON,但不确定如何使用它来操作数组中的用户定义对象
作为JavaScript n00b-感谢您的指导 您可以使用对象和数组文字表示法:
var widgetTemplats = [
{
name: 'compass',
LocX: 35,
LocY: 312
},
{
name: 'another',
LocX: 52,
LocY: 32
}
]
对于这样简单的事情,缺乏强制结构是很正常的。如果您确实想要更强制的结构,或者想要将行为附加到对象,那么您应该查看JavaScript中的类:
var Widget = function(name, x, y) {
this.name = name;
this.LocX = x;
this.LocY = y;
};
var widgets = [
new Widget('compass', 35, 312),
new Widget('another', 52, 32)
];
你的方法真的很好。谢谢-我从研究中推断出这一点,但不确定它是最优的。我想这可能是我想要的,因为它有更多的结构。我再玩一会儿。谢谢。我可以使用“推送”来用新对象扩展阵列。很好的例子!我爱你提供了两种方法。
var Widget = function(name, x, y) {
this.name = name;
this.LocX = x;
this.LocY = y;
};
var widgets = [
new Widget('compass', 35, 312),
new Widget('another', 52, 32)
];