在Javascript“类”中使用数组映射返回数组的每个项目

时间:2016-06-10 15:06:12

标签: javascript class array-map

我正在尝试构建一些有趣和学习的程序。我有以下问题:

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语句就行了。那么为什么我的代码返回undefined?有什么想法吗?

由于

2 个答案:

答案 0 :(得分:0)

因为你的功能没有返回任何东西

尝试:

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

Array.map也返回一个新数组。

答案 1 :(得分:0)

map 返回一个新数组,除非你返回它的结果,viewItinery的返回类型是未定义的,因此为什么这行

console.log(alex.viewItinerary());

记录未定义。要解决此问题,只需添加return

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