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

forEach() creates undefined array (Javascript)

本文关键字:Javascript 数组 创建 forEach 未定义      更新时间:2023-09-26

我在简单的字母数组上练习forEach()结构。我想将字母转换为大写并将它们打印到控制台。因此,当我将console.log()放入回调函数中时,它就可以工作了。但是为什么不可能将console.log()放在回调函数之外呢?它给出一个未定义的错误

如此:

var letters = [ "a","b","c"]; 
var capitalize = function (element,index,array) {
    console.log(element.toUpperCase());
};

letters.forEach(capitalize);

this doesn't work:(它给出undefined)

var letters = [ "a","b","c"]; 
var capitalize = function (element,index,array) {
    return element.toUpperCase();
};

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

您想要的是map()

var letters = [ "a","b","c"]; 
var capitalize = function (element,index,array) {
    return element.toUpperCase();
};
console.log(letters.map(capitalize));

forEach()对每个数组元素执行一次回调函数;与map()或reduce()不同,它总是返回undefined和is的值不是证明。