javascript - 在控制台中打印数组对象

标签 javascript

您好,我一直在尝试使用 codeacademy.com 学习 Javascript,但我已经完成了一个练习,但我写这个练习的原因似乎没有任何意义。这是我的代码:

 (function(){
    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];

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

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

        list();
})();

问题出在列表函数中,当我尝试调用 printPerson() 函数时,我得到那个人未定义,但如果我写而不是 list() 函数:

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

一切正常。我在 list() 函数中做错了什么,它不起作用?

最佳答案

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

i 这里是一个常量。如果更换它:

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

对于所有数组arrarr[arr.length]将始终是未定义的。您可能需要contacts[j]

关于javascript - 在控制台中打印数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10047683/

相关文章:

javascript - Vuejs : Use v-for to display an array of images from assets

javascript - 无法为 php 日期框赋值

javascript - JS 中获取 HiddenField 的值并传入 var

javascript - 使用 jQuery 验证器禁用自动输入焦点

javascript - 响应 jQuery post 请求而设置的变量

javascript - 位置置顶

javascript - 使用映射或任何其他方法转换数组 - javascript

javascript - JS Promise 包装函数返回 "Cannot read property ' 0' of undefined"

javascript - 手动计算对数

javascript - react : update a field value based on another field in dynamically generated form