【问题标题】:Filter array of objects that contains string using lodash使用 lodash 过滤包含字符串的对象数组
【发布时间】:2016-10-18 02:23:40
【问题描述】:

我有一个值,我需要在属性中返回包含该值的对象。

var search='CPP@';
var results=_.filter(collection,{VAL:search});

我需要抓取所有包含 'CPP@' 的对象,而不是等号。 我准备了https://jsfiddle.net/licass/e87mxfqt/

【问题讨论】:

    标签: javascript lodash


    【解决方案1】:

    var collection=[
      {
        "DSP_MAQ": "Máquina 4",
        "VAL": "CPP@4@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 5",
        "VAL": "CMIP@5@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 6",
        "VAL": "CMIP@6@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 7",
        "VAL": "CMIP@7@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 8",
        "VAL": "CPP@8@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 9",
        "VAL": "CMIP@9@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 10",
        "VAL": "CMIP@10@1900-01-01"
      }
     
    ];
     var search='CPP@';
        var results=_.filter(collection,function(item){
        return item.VAL.indexOf(search)>-1;
        });
        console.log(results);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.min.js"></script>
     var search='CPP@';
        var results=_.filter(collection,function(item){
        return item.VAL.indexOf(search)>-1;
        });
        console.log(results);
    

    【讨论】:

    • 如何统计退货数量
    • var count = results.length
    【解决方案2】:
    var results = _.filter(collection,function(obj) {
        return obj.VAL.indexOf(search) !== -1;
    });
    

    【讨论】:

    • 加点解释就更好了!
    【解决方案3】:

    var collection=[
      {
        "DSP_MAQ": "Máquina 4",
        "VAL": "CPP@4@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 5",
        "VAL": "CMIP@5@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 6",
        "VAL": "CMIP@6@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 7",
        "VAL": "CMIP@7@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 8",
        "VAL": "CPP@8@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 9",
        "VAL": "CMIP@9@1900-01-01"
      },
      {
        "DSP_MAQ": "Máquina 10",
        "VAL": "CMIP@10@1900-01-01"
      }
     
    ];
     var search='CMIP@9@1900-01-01';
    var filterList = collection.filter(function(item) {
     return item.VAL === search;
    })
    console.log(filterList)
    使用 javascirpt 过滤器。

    【讨论】:

    • 这不是“包含”——这是“等于”
    猜你喜欢
    • 1970-01-01
    • 2018-08-22
    • 2019-04-04
    • 2019-07-29
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    相关资源
    最近更新 更多