gpt4 book ai didi

javascript - forEach 没有定义——为什么?

转载 作者:行者123 更新时间:2023-12-01 00:36:06 25 4
gpt4 key购买 nike

Eloquent JavaScript,第 1 版,第 77 页中,它给出了从头开始构建映射函数的示例:

function mapFunc(func, array) {
var result = []; // not touching the original!
console.log("array:", array)
forEach(array, function(element) {
result.push(func(element));
});
return result;
}

看起来很简单,但是当它像这样运行时:

console.log(mapFunc(Math.round, [0.01, 2, 9.89, Math.PI]))

它抛出一个错误:

ReferenceError: forEach is not defined

即使我进行了更改以更匹配 es6 语法,同样的问题:

array.forEach(function(element) {
result.push(func(element))
console.log(element)
})

我已经搞乱它有一段时间了,无法弄清楚问题可能是什么,或者为什么 forEach 突然变得未定义。想法?

最佳答案

您需要使用array.forEach,并且需要正确调用mapFunc()。您将数组作为第二个参数传递给 console.log(),而不是 mapFunc()

function mapFunc(func, array) {
var result = []; // not touching the original!
console.log("array:", array)
array.forEach(function(element) {
result.push(func(element));
});
return result;
}

console.log(mapFunc(Math.round, [0.01, 2, 9.89, Math.PI]));

本书在本章前面定义了自己的 forEach() 函数。

function forEach(array, action) {
for (var i = 0; i < array.length; i++)
action(array[i]);
}

如果您将该函数添加到代码中,您应该能够使用您第一次编写时的 mapFunc() 函数。但无论哪种情况,您都需要正确调用 mapFunc()

关于javascript - forEach 没有定义——为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58121407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com