非常简单的问题我想但不确定实现这一目标的最佳方法是什么。
我想创建一个多个项目的对象。我应该这样做:
var projects = {};
projects.url = "www.example.com";
projects.description = "Project Description";
但是如何将这个项目对象用于多个项目呢?
编辑:我虽然使用数组作为一些答案建议但是有什么方法可以避免数组?
答案 0 :(得分:4)
拥有一系列项目对象。
var projects = [
{
url: 'http://www.example.com',
description: 'Project Description'
},
{
url: 'http://www.example2.com',
description: 'Project 2'
}
];
答案 1 :(得分:1)
创建项目类:
var Project = function() {};
Project.prototype = {
url: "www.example.com",
description: "Project Description"
};
然后您可以创建这些对象的多个实例:
var proj1 = new Project(),
proj2 = new Project();
答案 2 :(得分:-1)
最好的答案是使用阵列,但如果你坚持试图将方形钉子钉入圆孔,你可以使用这样的物体......
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!
}
}