在下面的简单练习中,我希望您能提供帮助。
我正在学习forEach,但不确定错误在哪里。尝试了多种方式
解决它,但仍然会出错。

我的目标是遍历数组phoneBook并在
页面上相应的名称和编号。

示例:如果我搜索“ Fede”,结果应为“ Fede1234”



var phoneBook = [{
  name: "Fede",
  number: "1234"
}, {
  name: "Marco",
  number: "5678"
}]

phoneBook.forEach(search(name))

function search(name) {
  if (name === phoneBook.name) {
    document.write(phoneBook.name + phoneBook.number)
  }
}

最佳答案

这里发生了一些事情。在这行上:phoneBook.forEach(search(name))未定义变量name。如果要传递每个对象,则该行应为:

phoneBook.forEach(search)

这将自动将每个对象传递给搜索功能。

搜索功能本身也有一些问题:

function search(name) {
  if (name === phoneBook.name) {
      document.write(phoneBook.name + phoneBook.number)
  }
}


在这种情况下,name是整个对象。另外,由于phonebook是数组,因此调用phonebook.name不会返回任何内容。

尝试这个:

var phoneBook = [{name: "Fede" , number: "1234"}, {name: "Marco" , number: "5678"}]
var name = "Fede";
phoneBook.forEach(search)

function search(object) {
  if (name === object.name) {
  document.write(object.name + object.number)
  }
}


现在,定义了name,并将搜索功能应用于电话簿中的每个对象。

09-25 15:38