ES6类方法在forEach循环内不返回任何东西
问题描述:
由于某种原因,PollClass
中的方法getTwo()
将不返回2
,而是undefined
。如果我将return
语句放在.forEach()
循环之外,则会返回一个值。ES6类方法在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()
}
目前尚不清楚,你想,如果回到什么'this.nums'没有2,或者它不止一个2.不管怎样,你最好使用'.some'而不是'forEach'。 – raina77ow
'forEach'不会返回任何东西。这不是'for'循环 – Redu
*“这是关闭,ES 6还是其他问题?”*都不是。内部函数不能让外部函数返回一些东西。 –