首页 > 解决方案 > 未定义的行为错误,但代码工作正常

问题描述

输出 -

product1 的超级客户

产品的好客户2

product3 的潜在客户

不明确的

问题 - 为什么我最后会得到那个未定义的?

var customer = {
    firstname: "",
    lastname: "",
    moneySpent: [],
    getTotal: function(){
        var sum = 0;
        for(let i = 0; i < 3; i++){
            sum += this.moneySpent[i];
        }
        return sum;
    },
    getLevel: function(){
        var level = "";
        for(let i = 0; i < 3; i++){
            if(this.moneySpent[i] >= 1000){
                level = "super";
            }else if(this.moneySpent[i] >= 500 && this.moneySpent[i] < 1000){
                level = "good";
            }else{
                level = "potential";
            }
            console.log(level + " customer for " + "product" + (i+1));
        }
    }
};



var customer1 = Object.create(customer);
customer1.firstname = "First1";
customer1.lastname = "Last1";
customer1.moneySpent = [1080.89, 783.23, 68.09];

console.log(customer1.getLevel());

标签: javascript

解决方案


因为你 console.log() 使用了两次。它应该更正如下

var customer = {
    firstname: "",
    lastname: "",
    moneySpent: [],
    getTotal: function(){
        var sum = 0;
        for(let i = 0; i < 3; i++){
            sum += this.moneySpent[i];
        }
        return sum;
    },
    getLevel: function(){
        var level = "";
        for(let i = 0; i < 3; i++){
            if(this.moneySpent[i] >= 1000){
                level = "super";
            }else if(this.moneySpent[i] >= 500 && this.moneySpent[i] < 1000){
                level = "good";
            }else{
                level = "potential";
            }
            console.log(level + " customer for " + "product" + (i+1));
        }
    }
    };



    var customer1 = Object.create(customer);
    customer1.firstname = "First1";
    customer1.lastname = "Last1";
    customer1.moneySpent = [1080.89, 783.23, 68.09];

    customer1.getLevel()


推荐阅读