Javascript 为什么数组未定义?
在下面的代码片段中,为什么我会看到未定义的日志?但是,如果我单独调用range方法并存储在某个局部变量中,然后执行Javascript 为什么数组未定义?,javascript,Javascript,在下面的代码片段中,为什么我会看到未定义的日志?但是,如果我单独调用range方法并存储在某个局部变量中,然后执行foreach,它就可以正常工作 var range = function (max) { var result = []; var index; for (index = 0; index <= max; index = index + 1) { result.push(index);
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
overarr
forEach
不会返回任何未定义的内容:我认为您想要的是,而不是forEach
。对于map
,您应该从函数返回新值,而不是更新数组[索引]
。查看文档中的一些示例。谢谢Andrew!是的,我应该使用map而不是forEach。