循环对象构造函数

时间:2018-03-04 05:23:39

标签: javascript loops if-statement javascript-objects

我有一个构造函数:

function Library(author, readingStatus) {
  this.author = author;
  this.readerStatus = readingStatus;
}

我用它创建对象

var One = new Library("One", true);
var Two = new Library("Two", false);

我想遍历每个对象,然后在if / else语句中,我想检查readingStatus是否为true。如果是的话,我想提醒“已经阅读过”。

我尝试了不同的方法,但它不起作用。谁能说明怎么样? 编辑这就是我的尝试。

for (var i = 0; i < Library.length; i++) {
var book = "'" + Library[i].title + "'" + ' by ' + Library[i].author + ".";
if (Library[i].readingStatus) {
  window.alert("Already read " + book);
} else
{
 window.alert("You still need to read " + book);
}
}

1 个答案:

答案 0 :(得分:1)

Library不是您可以迭代的项目。要遍历对象,最好创建一个对象数组。例如,您在此处有两个对象OneTwo。所以你可以创建一个数组,如下所示:

var array = [One, Two];

现在你可以遍历它们并检查所需的条件:

array.forEach(item => {
  if (item.readerStatus === true) {
    alert('already read');
  }
});

这是一个完整的例子,在行动中:

function Library(author, readingStatus) {
  this.author = author;
  this.readerStatus = readingStatus;
}

var One = new Library("One", true);
var Two = new Library("Two", false);
var array = [One, Two];

array.forEach(item => {
  if (item.readerStatus === true) {
    alert(item.author + ' already read');
  }
});