如何检查传递到递归函数的参数是否是数组的元素

How to check whether an argument passed into a recursive function is an element of an array?

本文关键字:递归函数 参数 是否是 元素 数组 何检查 检查      更新时间:2023-09-26

当参数传递到内部函数中时,有没有办法派生参数的来源,只有元素作为参数传入?

例如:

Array.prototype.forEach([1,2,3,4,5], function(item) {
  doSomething(item); // How to tell whether item was passed from an array?
};

谢谢!

No.你得到的只是价值。它没有这样的信息。

for每个回调有三个参数,currentValue(在你的例子中是项目),正在处理的数组中当前项目的索引,以及数组本身:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

此外,您可以使用参数,例如

[1, 2, 3, 4, 5].forEach(function(item) { console.log(item, arguments); });

虽然我认为简单地使用额外的回调参数会更有效?

最后,在判断项目是否从数组"传递"方面,如果您使用的是 Array 的 forEach,那么该项目将始终来自数组,除非我误解了您的问题?