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

如何用Lodash isEqual()比较单个对象属性与数组中所有同名属性

解决方案

Lodash完全支持你的需求,不需要手动编写循环或递归逻辑,以下是两种简洁高效的实现方式:

推荐方式:使用_.some(短路遍历,性能更优)

_.some会遍历数组,一旦找到符合条件的元素就立即停止遍历并返回true,非常适合处理大型数组:

// 若找到匹配项,终止外层函数
if (_.some(rssDataFileArr, { itemURL: feedItem.link })) {
    return;
}

逻辑说明:

  • 第二个参数传入{ itemURL: feedItem.link },Lodash会自动检查数组中是否存在对象的itemURL属性值等于feedItem.link。
  • 匹配到目标元素(示例中数组的第二个对象)时,直接返回true触发守卫子句。

备选方式:提取属性后用_.includes检查

如果需要复用提取后的属性数组,可以先通过_.map提取所有itemURL值,再用_.includes判断是否存在匹配:

// 提取数组中所有对象的itemURL属性值
const allItemUrls = _.map(rssDataFileArr, 'itemURL');
// 判断目标链接是否在列表中
if (_.includes(allItemUrls, feedItem.link)) {
    return;
}

注意:这种方式需要先遍历整个数组生成属性列表,对于超大型数组,性能略逊于_.some。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:35:19