例如:
function findIndexOfFirstNonNegative(array) {
array.forEach( (a, i) => { if (a >= 0) { return i; }});
return null;
}结果是,return i;不会返回到函数findIndexOfFirstNonNegative()的调用方,但它将从fat箭头函数返回,并让forEach继续运行(或者即使它是一个普通的旧函数,而不是fat箭头函数,它也是相同的)。
有什么方法可以让你突破并返回到来电者那里吗?
发布于 2017-04-26 07:44:40
您可以在Javascript中使用findIndex代替
array.findIndex( a => a >= 0);
console.log([-5,-10, 0, 4].findIndex( a => a >= 0))
发布于 2017-04-26 07:43:11
使用经典的循环。当满足条件时,这将返回到函数。
我在循环中添加了一个console.log(),以显示它将在创建非负数之后停止。
function findIndexOfFirstNonNegative(array) {
for (let i = 0, l = array.length; i < l; i++) {
console.log("Loop item : " + array[i] + " at index " + i);
if (array[i] >= 0) return i;
}
return -1;
}
console.log("Index found : " + findIndexOfFirstNonNegative([-5, 2, 1]))
或
您可以直接使用Array#findIndex()
function findIndexOfFirstNonNegative(array) {
return array.findIndex(a=>a>=0);
}
console.log("Index found : " + findIndexOfFirstNonNegative([-5, 2, 1]))
https://stackoverflow.com/questions/43627848
复制相似问题