使用下划线删除使用嵌入式数组的 object

Using Underscore to delete an object using an embedded array

抱歉,我的标题很糟糕,我想不出更好的方式来解释我的问题。我在 Ghost 博客上进行黑客攻击,试图通过过滤掉带有特定标签的帖子来在我的网站上创建部分。车把无法处理我需要在 client-side 上执行的操作,因此我正在研究 server-side 控制器以尝试完成此操作。我找到了 controllers/frontend.js 并且一直在尝试修改 formatPageResponse 函数。

我试过类似的方法,但显然不起作用。标签是它自己的数组,位于帖子数组的每个 object 中。

posts = _.without(posts, _.findWhere(posts.tags, {'name': 'News'}));

我假设您的 posts 数组如下所示:

[ { title: "Some Post", tags: { "name": "News" } }, ... ]

我会简单地使用过滤器:

posts = _.filter(posts, function(post){ 
    return !_.any(post.tags, function(tag){
       return tag.name === 'News' 
    } 
});