Javascript 为什么数组未定义?

Javascript 为什么数组未定义?,javascript,Javascript,在下面的代码片段中,为什么我会看到未定义的日志?但是,如果我单独调用range方法并存储在某个局部变量中,然后执行foreach,它就可以正常工作 var range = function (max) { var result = []; var index; for (index = 0; index <= max; index = index + 1) { result.push(index);

在下面的代码片段中,为什么我会看到未定义的日志?但是,如果我单独调用range方法并存储在某个局部变量中,然后执行
foreach
,它就可以正常工作

    var range = function (max) {
        var result = [];
        var index;
        for (index = 0; index <= max; index = index + 1) {
            result.push(index);
        }
        return result;
    };


   var arr=  range(100).forEach(function (number, index,array) {
        if (number % 3 == 0) {
            array[index] = "c";
        }
    });

    console.log(arr);
var范围=函数(最大值){
var结果=[];
var指数;

for(index=0;index,因为
forEach
函数返回未定义。请查看
map
函数


因为
Array.prototype.forEach
不返回任何内容。存储
range(100)
arr
中,然后
forEach
over
arr
forEach
不会返回任何未定义的内容:我认为您想要的是,而不是
forEach
。对于
map
,您应该从函数返回新值,而不是更新
数组[索引]
。查看文档中的一些示例。谢谢Andrew!是的,我应该使用map而不是forEach。