Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Codecademy构建地址簿5/6_Javascript_Arrays - Fatal编程技术网

Javascript Codecademy构建地址簿5/6

Javascript Codecademy构建地址簿5/6,javascript,arrays,Javascript,Arrays,我正在进行上面提到的活动,其中程序需要按姓氏搜索条目,找到该条目,然后返回与姓氏匹配的所有条目的名字和姓氏。 可以找到该活动 我的代码在运行Bob Jones后显示了正确的消息,但它附带了一条错误消息:TypeError:无法读取未定义的属性“lastName” 我不知道错误消息来自何处,也不知道如何解决它。欢迎任何意见 我的代码: var bob = { firstName: "Bob", lastName: "Jones", phoneNumber: "(650) 7

我正在进行上面提到的活动,其中程序需要按姓氏搜索条目,找到该条目,然后返回与姓氏匹配的所有条目的名字和姓氏。 可以找到该活动

我的代码在运行Bob Jones后显示了正确的消息,但它附带了一条错误消息:TypeError:无法读取未定义的属性“lastName”

我不知道错误消息来自何处,也不知道如何解决它。欢迎任何意见

我的代码:

var bob = {
    firstName: "Bob",
    lastName: "Jones",
    phoneNumber: "(650) 777-7777",
    email: "bob.jones@example.com"
};

var mary = {
    firstName: "Mary",
    lastName: "Johnson",
    phoneNumber: "(650) 888-8888",
    email: "mary.johnson@example.com"
};

var contacts = [bob, mary];

function printPerson(person) {
    console.log(person.firstName + " " + person.lastName);
}

function list() {
    var contactsLength = contacts.length;
    for (var i = 0; i < contactsLength; i++) {
        printPerson(contacts[i]);
    }
}

/*Create a search function
then call it passing "Jones"*/
function search(lastName) {
    for (var i = 0; i <= contacts.length; i++) {
        if (contacts[i].lastName === lastName) {
            printPerson(contacts[i]);    
        }    
    }    
};
search("Jones");
搜索中的for循环次数太多

您在列表中的位置是正确的,但在搜索中,您犯了一个小错误

你有:

for (var i = 0; i <= contacts.length; i++) {
应该是:

for (var i = 0; i < contacts.length; i++) {

非常感谢,这些都是让你发疯的错误。请为你的回答提供解释。欢迎!通常,只使用代码的答案并没有特别的帮助。在本例中,您可能希望添加有关修复了代码的哪些部分以及代码为何被破坏的信息。祝你好运
var bob = {
    firstName: "Bob",
    lastName: "Jones",
    phoneNumber: "(650) 777-7777 FREE",
    email: "bob.jones@example.com"
};

var mary = {
    firstName: "Mary",
    lastName: "Johnson",
    phoneNumber: "(650) 888-8888 FREE",
    email: "mary.johnson@example.com"
};

var contacts = [bob, mary];

function printPerson(person) {
    console.log(person.firstName + " " + person.lastName);
}

function list() {
    var contactsLength = contacts.length;
    for (var i = 0; i < contactsLength; i++) {
        printPerson(contacts[i]);
    }
}

function search(lastName) {
    var contactsLength = contacts.length;
    for (var i = 0; i < contactsLength; i++) {
        if (lastName === contacts[i].lastName) {
            printPerson(contacts[i]);
        };
    };
};
search("Jones");

function add(firstName, lastName, email, phoneNumber){
    object = {
        firstName: firstName,
        lastName: lastName, 
        email: email, 
        phoneNumber: phoneNumber
    };
    contacts[contacts.length] = object;
};

add("firstName", "lastName", "name@example.com", "32874683275");
list();
var bob = {
    firstName: "Bob",
    lastName: "Jones",
    phoneNumber: "(650) 777-7777",
    email: "bob.jones@example.com"
};

var mary = {
    firstName: "Mary",
    lastName: "Johnson",
    phoneNumber: "(650) 888-8888",
    email: "mary.johnson@example.com"
};

var contacts = [bob, mary];

// printPerson added here
var printPerson = function(person){

    console.log(contacts[0].firstName + " " + contacts[0].lastName);
    console.log(contacts[1].firstName + " " + contacts[1].lastName);
};

printPerson(contacts[0]);
printPerson(contacts[1]);