在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ JS通過屬性名獲取父屬性的屬性名

JS通過屬性名獲取父屬性的屬性名

有點(diǎn)描述不好,大概意思是比如我有這么一個(gè)對(duì)象:

    {
        a : {
            aa : {
               aaa : 123,
               bbb : 124
            } 
        },
        b : 1,
        c : [1,2,3]
        d : 2
    }
    我現(xiàn)在知道了一個(gè)屬性名“aaa”,我希望通過一個(gè)方法得到根屬性名“a”。
回答
編輯回答
空痕

你這種就是最好寫子類的時(shí)候帶一個(gè)屬性,就是父級(jí)對(duì)象 要查的時(shí)候 一個(gè)while循環(huán)就到最頂級(jí)了

2018年3月28日 21:27
編輯回答
乞許

其實(shí)這個(gè)問題,有種投機(jī)取巧的辦法:

var json = {
        a:{
            aa:{
               aaa:123,
               bbb:124
            } 
        },
        b:[{k:"f"}],
        c:[{a:[{abc:{def:8}}],b:1}],
        d:2
    }
    //這段直接復(fù)制上面兄弟的

有一個(gè)小東西:JSON.stringify
結(jié)果:

"{"a":{"aa":{"aaa":123,"bbb":124}},"b":[{"k":"f"}],"c":[{"a":[{"abc":{"def":8}}],"b":1}],"d":2}"

然后,按{一層層往上找就好了,找到,或者開頭為止

2018年9月5日 23:55
編輯回答
維她命

類似深度優(yōu)先搜索,遍歷對(duì)象的所有屬性,不斷遞歸,直到找到那個(gè)屬性就可以

2017年4月27日 11:41
編輯回答
愿如初

這個(gè)恐怕不行,找不到。

2017年5月25日 06:48
編輯回答
空痕

隨便寫的可以測(cè)一下(有點(diǎn)亂看看就行,屬性名一樣會(huì)返回第一個(gè)找到的)

var json = {
        a:{
            aa:{
               aaa:123,
               bbb:124
            } 
        },
        b:[{k:"f"}],
        c:[{a:[{abc:{def:8}}],b:1}],
        d:2
    };

function dg(json,a){
    var cb = null;
    if({}.toString.call(json)=="[object Object]"){
          for(var i in json){
              if(i==a){
              return i
          }
          if({}.toString.call(json[i])=="[object Object]"||{}.toString.call(json[i])=="[object Array]"){
              if(dg(json[i],a)){
                return i;
            }
          }
      }
  }else if({}.toString.call(json)=="[object Array]"){
    for(var i=0;i<json.length;i++){
      if({}.toString.call(json[i])=="[object Object]"){
       cb = dg(json[i],a)
      }
    }
  }
  return cb
}
console.log(dg(json,"abc"))
2017年3月5日 20:47
編輯回答
過客

首先你要解決什么問題?如果要訪問aaa的話,必須通過a對(duì)象進(jìn)入訪問;如果是現(xiàn)在知道aaa這個(gè)屬性名在這個(gè)大對(duì)象中,但是不知道aaa的父對(duì)象是誰的話只能通過遍歷搜索了

2018年3月13日 06:02