3

我想这是一个非常简单的问题,但不确定实现这一目标的最佳方法是什么。

我想创建多个项目的对象。我应该做这样的事情:

var projects = {};
projects.url = "www.example.com";
projects.description = "Project Description";

但是如何将这个项目对象用于多个项目?

编辑:我虽然像一些答案所建议的那样使用数组,但是有什么方法可以避免使用数组吗?

4

3 回答 3

4

有一组项目对象。

var projects = [
    {
        url: 'http://www.example.com',
        description: 'Project Description'
    },
    {
        url: 'http://www.example2.com',
        description: 'Project 2'
    }
];
于 2013-02-23T18:43:42.607 回答
1

创建一个项目类:

var Project = function() {};

Project.prototype = {
    url: "www.example.com",
    description: "Project Description"
};

然后您可以创建这些对象的多个实例:

var proj1 = new Project(),
    proj2 = new Project();
于 2013-02-23T19:01:38.430 回答
-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!
  }
}
于 2013-02-23T18:55:02.110 回答