ES6类方法在forEach循环中不返回任何东西
ES6 class methods not returning anything inside forEach loop
由于某种原因,PollClass
中的方法getTwo()
不会返回2
,而是返回undefined
。如果我将return
语句置于.forEach()
循环之外,则会返回一个值。
class Poll {
constructor(name) {
this.name = name;
this.nums = [1, 2, 3];
}
getTwo() {
this.nums.forEach(num => {
if (num === 2) return num;
})
}
}
const newPoll = new Poll('random name');
console.log(newPoll.getTwo()); // returns undefined, not 2
这是关闭的问题,ES 6,或整个其他问题?
箭头函数仍然是一个函数,您只从forEach回调函数返回,而不是从getTwo返回,您还必须从getTwo
函数返回。
我们不太清楚为什么要用循环来检查,但是这个概念应该是类似
的东西getTwo() {
var n = 0;
this.nums.forEach(num => {
if (num === 2) n = num;
})
return n; // returns something from getTwo()
}
正如adeneo所提到的,您必须从getTwo
函数返回才能实现您想要的结果。从传递给forEach
的回调返回,不管它是否是箭头函数,都不会从forEach
本身返回。
除了forEach
,您还可以使用find
,它可以用更少的代码编写并直接返回:
getTwo() {
return this.nums.find(num => num === 2);
}
相关文章:
- AJAX:$_GET不返回任何值
- document.styleSheets不返回任何内容
- 在解析对象.save()中;没有返回任何原因
- PhantomJs在控制台中发出http请求时不会返回任何状态
- 为什么这个array.filter总是不返回任何内容
- IE8DOM转换XML,并且不从jQueryfind()或filter()返回任何内容
- 比较数组中的连续元素不会返回任何结果(javascript)
- WebKitBrowser.StringByEvaluatingJavaScriptFromString 不返回任何值
- Ajax 不返回任何结果
- 我的 API 调用没有返回任何内容
- Javascript函数img.onload不返回任何内容(真或假)
- 为什么我的 sinon 假服务器不返回任何内容
- beforeSave导致查询不返回任何内容
- Ajax对PHP页面的调用总是不返回任何内容,即使PHP页面有回声
- 控制器的Helper函数不返回任何内容
- 函数不返回任何内容
- Breeze.js getEntities不返回任何实体
- 自定义Angular.js过滤器在IE8中不返回任何内容,在Chrome/FF中运行良好
- Dexie.exists()方法不返回任何内容(Dexie.js&IndexedDB)
- getElementsByClassName未返回任何内容