NodeJS 通过键的值在数组中查找对象

新手上路,请多包涵

我试图通过其中一个键的值获取数组中的对象。

数组:

 var arr = [
        {
            city: 'Amsterdam',
            title: 'This is Amsterdam!'
        },
        {
            city: 'Berlin',
            title: 'This is Berlin!'
        },
        {
            city: 'Budapest',
            title: 'This is Budapest!'
        }
];

我尝试用 lodash 做类似的事情,但没有成功。

 var picked = lodash.pickBy(arr, lodash.isEqual('Amsterdam');

它返回一个空对象。

关于如何以 lodash 方式执行此操作的任何想法(如果可能的话)?我可以用经典的方式来做,创建一个新数组,遍历所有对象并将符合我的条件的对象推送到新数组。但是有没有办法用 lodash 做到这一点?

这不是重复的。

原文由 Ariel Weinberger 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 490
2 个回答

使用 lodash 和箭头函数,它应该很简单;

 var picked = lodash.filter(arr, x => x.city === 'Amsterdam');

…或者交替使用对象表示法;

 var picked = lodash.filter(arr, { 'city': 'Amsterdam' } );

注意:上面的答案过去是基于 pickBy ,正如@torazaburo 在下面指出的那样,这不是用例的好选择。

原文由 Joachim Isaksson 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以将 Array.prototype.find() 与纯 javascript 一起使用:

 var picked = arr.find(o => o.city === 'Amsterdam');

它目前不 兼容 所有浏览器,你需要在你的环境中检查它(但它应该在 NodeJS 中工作)。

原文由 madox2 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题