我在简单的字母数组上练习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));
答案 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值而且是 不可链接。