首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >拥有array.forEach的JavaScript函数可以将一个值返回给调用者吗?

拥有array.forEach的JavaScript函数可以将一个值返回给调用者吗?
EN

Stack Overflow用户
提问于 2017-04-26 07:37:58
回答 2查看 475关注 0票数 0

例如:

代码语言:javascript
运行
复制
  function findIndexOfFirstNonNegative(array) {
    array.forEach( (a, i) => { if (a >= 0) { return i; }});
    return null;
  }

结果是,return i;不会返回到函数findIndexOfFirstNonNegative()的调用方,但它将从fat箭头函数返回,并让forEach继续运行(或者即使它是一个普通的旧函数,而不是fat箭头函数,它也是相同的)。

有什么方法可以让你突破并返回到来电者那里吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-26 07:44:40

您可以在Javascript中使用findIndex代替

代码语言:javascript
运行
复制
array.findIndex( a => a >= 0);

代码语言:javascript
运行
复制
console.log([-5,-10, 0, 4].findIndex( a => a >= 0))

票数 4
EN

Stack Overflow用户

发布于 2017-04-26 07:43:11

使用经典的循环。当满足条件时,这将返回到函数。

我在循环中添加了一个console.log(),以显示它将在创建非负数之后停止。

代码语言:javascript
运行
复制
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()

代码语言:javascript
运行
复制
function findIndexOfFirstNonNegative(array) {
  return array.findIndex(a=>a>=0);
}

console.log("Index found : " + findIndexOfFirstNonNegative([-5, 2, 1]))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43627848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档