【问题标题】:First result of object returns undefined对象的第一个结果返回未定义
【发布时间】:2014-04-10 17:23:33
【问题描述】:

问题描述 (Fiddle):

此代码的第一个打印结果返回“未定义”。为什么?避免它的正确实施是什么?

代码:

var animals = {
    dogs: 0,
    cats: 0,
    birds: 0,
    fish: 0
};

function countAnimals(animal) {
    animals[animal]++;

    var html;
    for (var key in animals) {
        if (animals.hasOwnProperty(key)) {
            html += key + ': ' + animals[key] + '<br/>';
        }
    }

    $('#output').html(html);
};

countAnimals('dogs');

【问题讨论】:

    标签: javascript jquery object associative-array


    【解决方案1】:
    var animals = {
        dogs: 0,
        cats: 0,
        birds: 0,
        fish: 0
    };
    
    function countAnimals(animal) {
        animals[animal]++;
    
        var html = ""; // here define variable as a string
        for (var key in animals) {
            if (animals.hasOwnProperty(key)) {
                html += key + ': ' + animals[key] + '<br/>';
            }
        }
    
        $('#output').html(html);
    };
    
    countAnimals('dogs');
    

    JSFiddle

    注意:起初你的变量html没有价值,所以它被认为是undefined

    【讨论】:

    • 谢谢!但是图沙尔领先你几秒钟。对不起,我也不能给你答案。 :(
    【解决方案2】:

    Fiddle Demo

    改变

    var html; // default value is undefined
    

    var html=''; //set value as empty string
    

    【讨论】:

    • @daveycroqet 欢迎 很高兴它有帮助:)
    猜你喜欢
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    相关资源
    最近更新 更多