Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript查找对象属性_Javascript - Fatal编程技术网

JavaScript查找对象属性

JavaScript查找对象属性,javascript,Javascript,我想在对象内部找到我想要的属性。 有一个对象 let obj = { 1: { 2 : { 3: { 4: { 5: { } } }, 100: { } } }, 6: { 7: { 8: { } }, 14:{ } }, 11: { 12: { }, 1

我想在对象内部找到我想要的属性。 有一个对象

let obj = {
  1: {
    2 : {
      3: {
        4: {
          5: {

          }
        }
      },
      100: {

      }
    }
  },
  6: {
    7: {
      8: {
      }
    },
    14:{

    }
  },
  11: {
    12: {

    },
    13:{

    }
  }
}
console.log(obj.hasOwnProperty(1)); // true
console.log(obj.hasOwnProperty(6)); // true
console.log(obj.hasOwnProperty(2)); // false
console.log(obj.hasOwnProperty(3)); // false
当我和其他20个人一起搜索时,我想得到真实的结果


我该怎么办?

您需要一个递归函数。一个选项是测试某些条目是否具有您要查找的属性,或者条目的值是否为对象,并且该对象是否通过了递归测试:

设obj={1:{2:{3:{4:{5:{}},100:{},6:{7:{8:{},14:{},11:{12:{},13:{} 函数hasNestedPropobj,findProp{ findProp=StringfindProp; return Object.entriesobj.some[key,val]=>{ 回来 键===findProp ||typeof val=='object'&&hasNestedPropval,findProp ; }; } console.loghasNestedPropobj,1; console.loghasNestedPropobj,6; console.loghasNestedPropobj,2; console.loghasNestedPropobj,3;
console.loghasNestedPropobj,555 您需要一个递归函数。一个选项是测试某些条目是否具有您要查找的属性,或者条目的值是否为对象,并且该对象是否通过了递归测试:

设obj={1:{2:{3:{4:{5:{}},100:{},6:{7:{8:{},14:{},11:{12:{},13:{} 函数hasNestedPropobj,findProp{ findProp=StringfindProp; return Object.entriesobj.some[key,val]=>{ 回来 键===findProp ||typeof val=='object'&&hasNestedPropval,findProp ; }; } console.loghasNestedPropobj,1; console.loghasNestedPropobj,6; console.loghasNestedPropobj,2; console.loghasNestedPropobj,3;
console.loghasNestedPropobj,555 对于嵌套对象,还需要检查每个子对象。试着跟随

设obj={1:{2:{3:{4:{5:{}},100:{},6:{7:{8:{},14:{},11:{12:{},13:{} 函数hasKeyo,key{ 福利特k in o{ ifk==键返回true; 否则,如果类型为o[k]==object&&hasKeyo[k],则键返回true; } 返回false; } console.loghasKeyobj,1;//符合事实的 console.loghasKeyobj,6;//符合事实的 console.loghasKeyobj,2;//符合事实的
console.loghasKeyobj,3;//true对于嵌套对象,还需要检查每个子对象。试着跟随

设obj={1:{2:{3:{4:{5:{}},100:{},6:{7:{8:{},14:{},11:{12:{},13:{} 函数hasKeyo,key{ 福利特k in o{ ifk==键返回true; 否则,如果类型为o[k]==object&&hasKeyo[k],则键返回true; } 返回false; } console.loghasKeyobj,1;//符合事实的 console.loghasKeyobj,6;//符合事实的 console.loghasKeyobj,2;//符合事实的 console.loghasKeyobj,3;//你可以认为是一种选择。以下是他们的例子:

var object = { 'a': [{ 'b': { 'c': 3 } }] };

_.get(object, 'a[0].b.c');
// => 3

_.get(object, ['a', '0', 'b', 'c']);
// => 3

_.get(object, 'a.b.c', 'default');
// => 'default'
你可以考虑作为一种选择。以下是他们的例子:

var object = { 'a': [{ 'b': { 'c': 3 } }] };

_.get(object, 'a[0].b.c');
// => 3

_.get(object, ['a', '0', 'b', 'c']);
// => 3

_.get(object, 'a.b.c', 'default');
// => 'default'
你可以结合使用

代码:

const obj={1:{2:{3:{4:{5:{},100:{},6:{7:{8:{},14:{},11:{12:{},13:{}; const hasKey=obj,key=>Object .keysobj .reducea,c=>{ 如果c==key | | type of obj[c]==='object'&&hasKeyobj[c],则键{ a=真; } 返回a; },假; console.loghasKeyobj,1; console.loghasKeyobj,6; console.loghasKeyobj,2; console.loghasKeyobj,3; console.loghasKeyobj,555 你可以结合使用

代码:

const obj={1:{2:{3:{4:{5:{},100:{},6:{7:{8:{},14:{},11:{12:{},13:{}; const hasKey=obj,key=>Object .keysobj .reducea,c=>{ 如果c==key | | type of obj[c]==='object'&&hasKeyobj[c],则键{ a=真; } 返回a; },假; console.loghasKeyobj,1; console.loghasKeyobj,6; console.loghasKeyobj,2; console.loghasKeyobj,3;
console.loghasKeyobj,555;我为它写了一些类似的东西,其他答案可能会有所帮助。我为它写了一些类似的东西,其他答案可能会有所帮助。