簡體   English   中英

使用 lodash isEqual() 比較單個 object 屬性與來自具有多個對象的大數組的匹配屬性

[英]Using lodash isEqual() to compare single object property with matching properties from large array with multiple objects

我查看了lodash 文檔並嘗試比較簡單的對象。 我還在網上找到了一些關於比較整個對象和其他類型比較的解釋,但我想比較單個 object 中的一個屬性值與具有多個對象的大數組中某個名稱的所有屬性的值。

lodash 是否足夠聰明,可以按原樣執行此操作,如果是這樣,處理此問題的正確語法是什么? 或者我是否需要某種循環來處理較大的 object 並遞歸比較其特定名稱的屬性與較小的 object 屬性?

我正在尋找的 javascript 比較是這樣的,但我不知道如何指示我想比較大數組中的所有itemURL屬性:

// guard clause to end the larger function if test is true, any match found
if (_.isEqual(feedItem.link, rssDataFileArr.itemURL)) {
    return; 
}

小object例子:

const feedItem = {
  link: 'https://news.google.com/rss/search?q=nodejs',
  otherProperty: 'whatever'
}

大量對象示例:

const rssDataFileArr = [
  {
    "itemURL": "https://news.google.com/rss/search?q=rss-parser",
    "irrelevantProperty": "hello"
  },
  {
    "itemURL": "https://news.google.com/rss/search?q=nodejs",
    "irrelevantProperty": "world"
  },
  {
    "itemURL": "https://news.google.com/rss/search?q=javascript",
    "irrelevantProperty": "hello"
  }
]

任何幫助表示贊賞。

根據評論中的建議,我使用了內置的 javascript 方法而不是 lodash。 我使用some()是因為我只需要 true/false boolean 結果,而不是find()值。

const feedItem = {
  link: 'https://news.google.com/rss/search?q=nodejs',
  otherProperty: 'whatever',
};
const rssDataFileArr = [
  {
    itemURL: 'https://news.google.com/rss/search?q=rss-parser',
    irrelevantProperty: 'hello',
  },
  {
    itemURL: 'https://news.google.com/rss/search?q=nodejs',
    irrelevantProperty: 'world',
  },
  {
    itemURL: 'https://news.google.com/rss/search?q=javascript',
    irrelevantProperty: 'hello',
  },
  {
    itemURL: 'https://news.google.com/rss/search?q=nodejs',
    irrelevantProperty: 'world',
  },
];
const linkMatch = rssDataFileArr.some(
  ({ itemURL }) => itemURL === feedItem.link
);
// guard clause to end the larger function if test is true, any match found
if (linkMatch) {
  console.log('linkMatch is true');
  return;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM