首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何给数组中的对象赋予它们的属性?

如何给数组中的对象赋予它们的属性?
EN

Stack Overflow用户
提问于 2017-06-22 12:30:49
回答 4查看 38关注 0票数 0

例如,我正在创建一个对象数组,该数组中的每个对象都应该描述一本书。

在我的脑海里,这是我所看到的:

代码语言:javascript
复制
var booksArray = ["Always Running", "Hatchet", "Autobiography of Malcolm X", "Che Guevara: A Revolutionary Life", "The Prince"];

我还应该给出以下属性:

标题:作者: alreadyRead:(boolean)

SO..with说这就是我的代码看起来的样子,我不知道我是不是做对了,看看book1,book2等等是如何没有连接到数组的。

代码语言:javascript
复制
    var booksListArray = ["Always Running", "Hatchet", "Autobiography of Malcolm X", "Che Guevara: A Revolutionary Life", "The Prince"];

    var book1 = {
        title: "Always Running",
        author: "Luis J. Rodriguez",
        alreadyRead: true
    }

    var boook2 = {
        tite: "Hatchet",
        author: "Gary Paulsen",
        alreadyRead: true
    }
EN

回答 4

Stack Overflow用户

发布于 2017-06-22 12:33:24

您可以将book对象直接放入数组中:

代码语言:javascript
复制
var books = [
    { title: "Always Running", author: "Luis J. Rodriguez", alreadyRead: true },
    { title: "Hatchet", author: "Gary Paulsen", alreadyRead: true },
    // etc
];

请注意,当您进行缩放(如在中,拥有数十万个图书对象实例)时,如果您使用构造函数,则JavaScript引擎可以为具有相同属性的许多对象优化其内部内存(例如,通过不将属性名称与每个对象实例一起存储):

代码语言:javascript
复制
function Book(title, author, alreadyRead) {
    this.title = title;
    this.author = author;
    this.alreadyRead = alreadyRead;
}

你可以这样使用它:

代码语言:javascript
复制
var books = [
    new Book( "Always Running", "Luis J. Rodriguez", true ),
    new Book( "Hatchet", "Gary Paulsen", true ),
    // etc
];
票数 1
EN

Stack Overflow用户

发布于 2017-06-22 12:38:08

很简单..。您已经使用book1和book2创建了一个对象,只需像这样将它们放入数组中:

代码语言:javascript
复制
var booksListArray = [
   {
    title: "Always Running",
    author: "Luis J. Rodriguez",
    alreadyRead: true
   },
   {
    tite: "Hatchet",
    author: "Gary Paulsen",
    alreadyRead: true
   }
  ]

然后,您可以像这样访问图书详细信息(示例将显示第一本图书的标题):

代码语言:javascript
复制
 booksListArray[0].title
票数 0
EN

Stack Overflow用户

发布于 2017-06-22 12:38:44

编辑:更新了代码,以显示已读和未读的书。

使用push()方法将对象插入到数组中。

代码语言:javascript
复制
var booksListArray = ["Always Running", "Hatchet", "Autobiography of Malcolm X", "Che Guevara: A Revolutionary Life", "The Prince"];

var book1 = {
    title: "Always Running",
    author: "Luis J. Rodriguez",
    alreadyRead: true
}

var book2 = {
    title: "Hatchet",
    author: "Gary Paulsen",
    alreadyRead: true
}
var books = [];
books.push(book1);
books.push(book2);
console.log(books);
    
books.forEach(function(book){
  if(book.alreadyRead){
    console.log('I have read ' + book.title + ' by ' + book.author);
  } else {
    console.log('I haven\'t read ' + book.title+ ' by ' + book.author);
  }
});

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44690171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档