簡體   English   中英

Lodash具有多個值數組的多重鍵過濾器

[英]Lodash multiple key with multiple array of values filter

我正在嘗試使用lodash過濾器對象過濾多維對象。 以下是我的用於過濾數據的示例對象。

    {
  "0": {
    "details": {
      "rating": 2.5,
      "amenities": {
        "airConditioning": true,
      },
    },
    "rates": {
      "packages": [
        {
          "refundable": "Yes",
        }
      ]
    }
  },
  {
  "1": {
    "details": {
      "rating": 3,
      "amenities": {
        "airConditioning": false,
      },
    },
    "rates": {
      "packages": [
        {
          "refundable": "Yes",
        }
      ]
    }
  },
  {
  "2": {
    "details": {
      "rating": 2,
      "amenities": {
        "airConditioning": true,
      },
    },
    "rates": {
      "packages": [
        {
          "refundable": "No",
        }
      ]
    }
  },
}

我努力了

    console.log(_.filter( data, { 'details.rating': '2', 'details.rating': '3' } ));

_.filter(data, function (item) {
  return ['2', '3'].indexOf(item.details.rating) >= 0
})

然后也使用lodash在json數組中使用多個鍵過濾多個值

沒有任何作用

您的JSON在鍵"1""2"之前具有多余的{ 所以刪除它,它將起作用。

  var data = { "0": { "details": { "rating": 2.5, "amenities": { "airConditioning": true, }, }, "rates": { "packages": [ { "refundable": "Yes", } ] } }, "1": { "details": { "rating": 3, "amenities": { "airConditioning": false, }, }, "rates": { "packages": [ { "refundable": "Yes", } ] } }, "2": { "details": { "rating": 2, "amenities": { "airConditioning": true, }, }, "rates": { "packages": [ { "refundable": "No", } ] } } }; var result = _.filter(data, (item) => { return [2, 3].indexOf(item.details.rating) >= 0 }); console.log(result); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script> 

注意過濾器[2, 3]的數組元素。 它們是整數類型,如item.details.rating是整數。

暫無
暫無

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

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