【问题标题】:Lodash find by regExp matchLodash 通过 regExp 匹配查找
【发布时间】:2017-12-28 16:20:24
【问题描述】:

是否可以使用正则表达式 lodash 在对象数组中查找? 例如:

a=val+"@"
b="@"+val
_.find(obj.dbColumns,{attr:{data-db-name: ***CONTAINS a || CONTAINS b*** }})

提前致谢。

【问题讨论】:

    标签: arrays regex object find lodash


    【解决方案1】:

    您可以传递一个测试每个元素的函数。 documentation 给出了这个例子:

    var users = [
      { 'user': 'barney',  'age': 36, 'active': true },
      { 'user': 'fred',    'age': 40, 'active': false },
      { 'user': 'pebbles', 'age': 1,  'active': true }
    ];
    
    _.find(users, function(o) { return o.age < 40; });
    

    所以你可能正在寻找这样的东西:

    _.find(obj.dbColumns, function(o) {
        return (new RegExp ([a,b].join('|'))).test( o.yourAttribute );
    });
    

    或者如果你只是想要一个子字符串搜索,而不是一个正则表达式:

    _.find(obj.dbColumns, function(o) {
        return
            o.yourAttribute.indexOf(a) >= 0 ||
            o.yourAttribute.indexOf(b) >= 0;
    });
    

    【讨论】:

      猜你喜欢
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      • 2011-10-25
      • 2019-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多