Javascript 如何从给定字符串中深入搜索对象

Javascript 如何从给定字符串中深入搜索对象,javascript,Javascript,我想拆分str(点分隔)并查看对象树内部(如果值存在) 为了保持简单,我刚刚创建了一个简单的对象,但我希望它是一个深入的搜索 我只需要逻辑,不需要一个工作代码,只需要一个我在存在中需要做什么的方向,递归检查person.name.first是否存在,并返回一个boolean值true | | false,作为最终答案 var str = "person.name.first"; var arr = { person: { name: {'first':true ,'last' :

我想拆分
str
(点分隔)并查看对象树内部(如果值存在)

为了保持简单,我刚刚创建了一个简单的对象,但我希望它是一个深入的搜索

我只需要逻辑,不需要一个工作代码,只需要一个我在存在中需要做什么的方向,递归检查
person.name.first
是否存在,并返回一个
boolean
true | | false
,作为最终答案

var str = "person.name.first";

var arr = {
  person: {
    name: {'first':true ,'last' : true },
    age : true
  }
}

function exists(){
   ...
}
exists(str,arr);//true === exists, false === does not exist
试一下:

function exists(str, arr) {
  var parts = str.split('.');
  for (var i = 0; i < parts.length; i++ ) {
    if (arr.hasOwnProperty(parts[i])) {
      arr = arr[parts[i]];
    } else {
      return false;
    }
  }
  return true;
}
函数存在(str、arr){
var parts=str.split('.');
对于(变量i=0;i
#dupo它有点相似,但我只是想检查一下是否存在真的或假的。不获取值/参考。工作小提琴: