我想这是一个非常简单的问题,但不确定实现这一目标的最佳方法是什么。
我想创建多个项目的对象。我应该做这样的事情:
var projects = {};
projects.url = "www.example.com";
projects.description = "Project Description";
但是如何将这个项目对象用于多个项目?
编辑:我虽然像一些答案所建议的那样使用数组,但是有什么方法可以避免使用数组吗?
我想这是一个非常简单的问题,但不确定实现这一目标的最佳方法是什么。
我想创建多个项目的对象。我应该做这样的事情:
var projects = {};
projects.url = "www.example.com";
projects.description = "Project Description";
但是如何将这个项目对象用于多个项目?
编辑:我虽然像一些答案所建议的那样使用数组,但是有什么方法可以避免使用数组吗?
有一组项目对象。
var projects = [
{
url: 'http://www.example.com',
description: 'Project Description'
},
{
url: 'http://www.example2.com',
description: 'Project 2'
}
];
创建一个项目类:
var Project = function() {};
Project.prototype = {
url: "www.example.com",
description: "Project Description"
};
然后您可以创建这些对象的多个实例:
var proj1 = new Project(),
proj2 = new Project();
最好的答案是使用数组,但是如果您坚持尝试将方形钉锤入圆孔中,则可以使用这样的对象...
var projects = {}
projects.project1 = {
url = "www.example.com";
description = "Project Description";
}
projects.project2 = {
url = "www.example2.com";
description = "Project2 Description";
}
并像这样选择...
for(i=0;i<2;i++){
console.log(projects["project"+i].description)
}
我唯一能想象使用对象而不是数组来处理这样的事情是有用的,如果您的项目具有唯一的 ID,并且您需要大量不按顺序查找它们。列出项目有一个好处,使用它们的 ID 作为键,这样如果你知道 ID,你可以直接选择对象,而不是循环遍历一个数组来找到你想要的...
projects = {
projAcHRx:{ ... },
projFhv5R:{ ... }
}
// select project: projAcHRx
projects.projAcHRx // <~ very simple lookup if you know the ID
而不是
projects = [
{ id:'projAcHRx',
... },
{ id:'projFhv5R',
... },
]
// select project: projAcHRx
for(i=projects.length;i;i--){
if(projects[i] == 'projAcHRx'){
var selected = projects[i] // <~ hideously complex selection!
}
}