gpt4 book ai didi

javascript - 为什么这个 forEach 在使用 return 语句时返回 undefined

转载 作者:可可西里 更新时间:2023-11-01 02:30:34 28 4
gpt4 key购买 nike

Object.prototype.e = function() {
[].forEach.call(this, function(e) {
return e;
});
};
var w = [1,2];

w.e(); // undefined

但是如果我改用 alert 就可以了

// ...
[].forEach.call(this, function(e) {
alert(e);
});
// ...

w.e(); // 1, 2

最佳答案

我知道这是一个老问题,但是当你搜索这个主题时它是谷歌上出现的第一个问题,我会提到你可能正在寻找的是 javascript 的 for..in 循环,它在许多其他语言(如 C#、C++ 等)中表现得更接近 for-each...

for(var x in enumerable) { /*code here*/ }

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/for...in

http://jsfiddle.net/danShumway/e4AUK/1/

需要记住的几件事:

  • for..in 不保证您的数据将按任何特定顺序返回。
  • 您的变量仍将引用索引,而不是存储在该索引处的实际值。
  • 另请参阅下面关于将其与数组一起使用的评论。

编辑:for..in 将(至少)返回添加到对象原型(prototype)的属性。如果这是不希望的,您可以通过将您的逻辑包装在附加检查中来纠正此行为:

for(var x in object) {
if(object.hasOwnProperty(x)) {
console.log(x + ": " + object[x]);
}
}

关于javascript - 为什么这个 forEach 在使用 return 语句时返回 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7209794/

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