首页 > 解决方案 > post.comments = post.comments.filter( ({ id }) => id !== req.params.comment_id ); -->代码的工作

问题描述

我很难理解这段代码,我浏览了互联网但仍然无法得到它。

post.comments = post.comments.filter(
  ({ id }) => id !== req.params.comment_id
);

我想知道这段代码实际上是如何工作的。

标签: javascript

解决方案


.filter是一个函数,Array它需要一个返回布尔值的回调函数。

如果回调返回true项目将被添加到返回的数组中。对于false,将被跳过。


() => {}称为箭头函数,类似于匿名函数,但没有上下文,继承自定义函数。


({ id })是一种称为解构赋值的方法,您可以在其中挑选任何属性并为其创建变量。

所以里面的对象commentpost.comments具有id属性,你只是从对象中获取它


你的代码在 ES5 中看起来像这样

post.comments = post.comments.filter(function(comment) {
  var id = comment.id;
  return id !== req.params.comment_id;
})

参考:


推荐阅读