2017-07-27 8 views
-1

obj3から "name"キーにアクセスする方法を教えてください。下記の例をご覧ください。javascriptのネストされたオブジェクトからキーにアクセスする方法

私は良いapprochを探しています、私はやっていけない:

obj.obj1.obj2.obj3.name

var obj = { 
    obj1 : { 
     obj2: { 
      obj3: { 
       name: 'jhon' 
      } 
     } 
    } 
} 

ありがとう!

+1

ドット表記の代わりに何をしたいですか? –

+0

'obj.key'や' obj [key] 'などのオブジェクトプロパティ'ドット表記法 'と'ブラケット表記法 'にアクセスするには2つの方法しかありません。 – Manish

+0

のいずれかの関数がjavascriptや他の方法であれば。 – RVCoder

答えて

2

あなたは理論的には、たとえば

const {obj1: {obj2: { obj3: {name: b}}}} = obj console.log(b) //jhon

+0

あなたの答えに感謝しますが、少し説明してください。 – RVCoder

+0

ここにドット表記はありません。 –

+0

これで十分です。 [デストラクタリング](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)。また、この質問に答えてマークする必要があります。 –

1

をES6を使用してdestructureあなたは最初の非オブジェクト要素を返す再帰関数を使用することができますことができます。

明らかに、この関数は、ネストされたオブジェクトが1つのオブジェクトまたは1つの値のみを含む構造体でのみ機能します。

var obj = { 
    obj1 : { 
     obj2: { 
      obj3: { 
       name: 'jhon' 
      } 
     } 
    } 
} 

const getName = (obj) => { 
    if (typeof obj[Object.keys(obj)] === 'object') { 
     return getName(obj[Object.keys(obj)]) 
    } else { 
     return obj[Object.keys(obj)] 
    } 
} 

getName(obj) 
関連する問題