javascript中的对象数组

时间:2013-02-23 18:41:31

标签: javascript

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

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

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

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

编辑:我虽然使用数组作为一些答案建议但是有什么方法可以避免数组?

3 个答案:

答案 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!
  }
}