forEach()创建未定义的数组(Javascript)

时间:2015-10-08 14:31:12

标签: javascript foreach

我在简单的字母数组上练习forEach()构造。我想将字母转换为大写并将其打印到控制台。所以当我把console.log()放在回调函数中时,我已经使它工作了。但是为什么不能将console.log()置于回调函数之外。它给出了一个未定义的错误

这有效:

var letters = [ "a","b","c"]; 

var capitalize = function (element,index,array) {

    console.log(element.toUpperCase());

};


letters.forEach(capitalize);

这不起作用:(它给出了未定义的)

var letters = [ "a","b","c"]; 

var capitalize = function (element,index,array) {

    return element.toUpperCase();

};


console.log(letters.forEach(capitalize));

2 个答案:

答案 0 :(得分:1)

你想要的是map()

var letters = [ "a","b","c"]; 

var capitalize = function (element,index,array) {
    return element.toUpperCase();
};

console.log(letters.map(capitalize));

答案 1 :(得分:0)

  

forEach()为每个数组元素执行一次回调函数;   与map()或reduce()不同,它总是返回undefined值而且是   不可链接。

Source