You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中postForComment函数内双return语句的作用疑问

理解两个return的作用

首先先把你的代码再贴一遍方便对照:

var posts = [{ id: 1, title: 'new post' }, { id: 2, title: 'old post' } ];
var comment = { postId: 1, content: 'Great Post' };
function postForComment(posts, comment) { 
  return posts.find(function(post) { 
    return post.id === comment.postId 
  }); 
}
var c = postForComment(posts, comment);
console.log(c);

这两个return属于不同层级的函数,作用完全不一样,我给你逐个拆解:

  • 外层的return(return posts.find(...)):
    这个return属于postForComment函数本身,它的作用是把posts.find()方法执行后得到的结果,作为postForComment函数的返回值。当你调用postForComment(posts, comment)时,这个return会把找到的匹配的post对象传递给变量c,这样你才能拿到最终的结果。

  • 内层的return(return post.id === comment.postId):
    这个return属于find方法的回调函数(就是那个function(post) {...})。find是数组的一个方法,它会遍历数组里的每一个元素,每次遍历都会调用这个回调函数。这个return的作用是给find方法一个判断条件:如果当前遍历的post的id和评论的postId相等,就返回true,告诉find“就是这个元素了,别找了”;如果不相等就返回false,让find继续往下找。

简单来说,外层return是“把找到的结果交出去”,内层return是“告诉程序怎么找对的结果”,两者配合才能完成从数组里匹配对应帖子的功能~

内容的提问来源于stack exchange,提问作者Alex_Angular

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:51:55