簡體   English   中英

通過 object 過濾對象數組

[英]lodash filter array of objects by an object

我有一個對象數組,如下所示。 我需要使用過濾器 object 過濾這些對象數組。 lodash 中是否有任何可用的方法可以做到這一點。 過濾器 object 和過濾器對象的列名是動態的

對象數組

[
  {
    "fname": "Stephanie",
    "lname": "Cotton",
    "status": "Inactive"
  },
  {
    "fname": "Jallis",
    "lname": "Buckley",
    "status": "Inactive"
  },
  {
    "fname": "Good",
    "lname": "Stuart",
    "status": "Inactive"
  },
  {
    "fname": "Jana",
    "lname": "Buckley",
    "status": "Inactive"
  },
  {
    "fname": "Welch",
    "lname": "Clay",
    "status": "Inactive"
  }
]

過濾器 Object

 {
   "fname":"ja",
    "lname":"Buckley"
 }

預計 Output

[
  {
    "fname": "Jallis",
    "lname": "Buckley",
    "status": "Inactive"
  },
  {
    "fname": "Jana",
    "lname": "Buckley",
    "status": "Inactive"
  },
]
console.log(
  _.filter(tests, (value) => {
    for (let k of Object.keys(value)) {
      if (!_.startsWith(_.toLower(value[k]), _.toLower(filter[k]))) {
        return false;
      }
    }
    return true;
  })
);

以下是使用 ES6 vanilla js 實現這一目標的方法:

 const array = [ { "fname": "Stephanie", "lname": "Cotton", "status": "Inactive" }, { "fname": "Jallis", "lname": "Buckley", "status": "Inactive" }, { "fname": "Good", "lname": "Stuart", "status": "Inactive" }, { "fname": "Jana", "lname": "Buckley", "status": "Inactive" }, { "fname": "Welch", "lname": "Clay", "status": "Inactive" } ] const filtered = array.filter(item=> item.fname.includes('Ja') && item.lname.includes('Buckley')); console.log(filtered);

暫無
暫無

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

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