在 Javascript "Class" 到 Return 数组的每个项目中使用数组映射

Using Array Map in a Javascript "Class" to Return Each Item of the Array

我正在尝试构建一些程序来娱乐和学习。我遇到以下问题:

function Hero(name) {
this.name = name;

this.addItem = function(item) {
    this.items = this.items || [];
    this.items.push(item);
};

// .... 

this.viewItinerary = function() {
    this.items.map(function(currItem){
        return currItem;
    });
};

}

var alex = new Hero("Alex");
alex.addItem("Sword");
alex.addItem("Shield");
console.log(alex.viewItinerary());
// returns undefined. why does it not return items in array?

如果我用 console.log(currItem) 替换 return 语句,它就可以工作。那么为什么我的代码 returning 未定义?有什么想法吗?

谢谢

因为你的函数没有return任何东西

尝试:

this.viewItinerary = function() {
    return this.items;
};

还有Array.mapreturn一个新数组。

map returns 一个新数组,除非你 return 它的结果 return 类型 viewItinery 未定义,因此这行

console.log(alex.viewItinerary());

日志未定义。要修复它,只需添加一个 return

this.viewItinerary = function() {
    return this.items.map(function(currItem){
        return currItem;
    });
};