How to use an array of keys to fetch the value from a Javascript object

前端 未结 3 1336
春和景丽
春和景丽 2020-12-12 02:53

If there is a Javascript object with multiple levels, as in:

myObject = {
        a: 12,
        obj11: {
                obj111: \'John\',
                b         


        
3条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-12 03:46

    You can do this with a reduce() one-liner. Of course if you want to wrap it in a function, you can do that too.

    var myObject = {
        a: 12,
       obj11: {
               obj111: 'John',
               b:13,
               obj1111: { a:15,
                          b: 35 }
               },
       obj21: {
               a:15,
               b:16 }
    }
    
    var arr =   ['obj11','b']
    var val = arr.reduce((acc,curr) => acc[curr], myObject)
    console.log(val)
    
    var arr =   ['obj11','obj1111', 'b']
    var val = arr.reduce((acc,curr) => acc[curr], myObject)
    console.log(val)

提交回复
热议问题