在下面的简单练习中,我希望您能提供帮助。
我正在学习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
,并将搜索功能应用于电话簿中的每个对象。