【问题标题】:Lodash match string to objectLodash 匹配字符串到对象
【发布时间】:2016-02-12 10:48:33
【问题描述】:

我是 Lodash 的新手,所以如果问题是微不足道的,我深表歉意。

我有一个字符串,我必须根据一个集合来验证它。

var x = 'foo'

var myObject = {
   one: 'bar',
   two: 'foo',
   three: 'wiz'
}

我如何使用 Lodash(或者更方便的普通 JS)比较 x 的值与 onetwothree 的值以查找是否匹配?

【问题讨论】:

    标签: javascript object lodash


    【解决方案1】:

    如果你想在这个例子中使用Lodash,你可以使用includes方法:

    _.includes(myObject, x)
    

    检查值是否在集合中。

    【讨论】:

      【解决方案2】:

      您可以使用Object.keys获取对象的键,并使用Array.prototype.some检查是否有一个或多个键在使用:

      var x = 'foo'
      
      var myObject = {
         one: 'bar',
         two: 'foo',
         three: 'wiz'
      }
      
      var hasAnyKeyThatMatchesx = Object.keys(myObject).some(function(k){ return myObject[k] === x });
      

      【讨论】:

        【解决方案3】:

        按值查找键 _.findKey(myObject, (row) => row === x ) // returns "two"

        只需检查值是否存在:_.includes(myObject, x) // returns true

        【讨论】:

          【解决方案4】:

          您可以使用for ... in (docs) 循环对象的属性:

          var x = 'foo';
          
          var myObject = {
              one: 'bar',
              two: 'foo',
              three: 'wiz'
          }
          
          function containsValue(obj, value) {
          
              for (var prop in myObject) {
                  if(x === myObject[prop]) {
                      return true;
                  }
              }
              return false;
          }
          
          console.log(containsValue(myObject, x));
          

          这只是普通的 js。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-01-26
            • 1970-01-01
            • 1970-01-01
            • 2017-04-12
            • 2021-12-15
            • 1970-01-01
            相关资源
            最近更新 更多