如何查找字符串是否出现在对象中的任何地方?

时间:2019-11-01 19:26:16

标签: javascript loops object search find

我有几个对象。它们以许多不同的方式构造。例如:

var obj1 = {
  'key1':'value',
  'key2':[{
     'somekey':'somevalue',
     'nestedObject': [{
        'something':'{{THIS STRING}}'
      }]
   }]
 }

var obj2 = {
      'key5':'some text {{THIS STRING}} some more text',
      'name':[{
         'somekey':'somevalue'
       }]
     }

对象远不止于此,它们的结构可以无限不同。

我正在寻找一种找到 {{THIS STRING}} 的方法,无论它出现在对象中的什么位置,也不管周围有什么其他文本。我需要知道的是,它是否出现在任何给定对象的值中的任何位置,无论它在对象中有多深,都是对/错。

谢谢!

1 个答案:

答案 0 :(得分:0)

注意:确实这是一种快速方法,但是它不适用于所有用例。例如如果您的键可能包含所需的字符串,这将提供错误的输出。请参阅下面的评论。

不是最干净的解决方案,但是您可以使用JSON.stringify()将对象转换为JSON字符串,然后在该字符串中查找所需的字符串。

var obj1_str = JSON.stringify(obj1);
var isInFile = obj1_str.includes("your_string"); //true if your string is there, false otherwise.