2017-09-14 29 views
0

嗨,我是從一個SOAP服務獲得的數據和轉換XML到JSON和獲取我需要這樣的價值:Lodash深挑

console.log(result['soap:Envelope']['soap:Body']['ns2:getFichaGeneralResponse']['return']['instituciones']['datosPrincipales']['registros'][1].valor) 

有沒有辦法做這樣的事情?

console.log(_.pick(result, 'registros')) 

因此,我可以得到一個對象與我需要的信息?

+0

如何看起來'result'變量?它的結構是什麼?此console.log拋出一個錯誤'console.log(result ['soap:Envelope'] ['soap:Body'] ['ns2:getFichaGeneralResponse'] ['return'] ['instituciones'] ['datosPrincipales'] [ 'registros'] [1] .valor)' –

回答

1

如果我理解正確,你有一個複雜的對象,你想按指定的路徑選擇一些道具?

例如,你想從下面的物體獲得通過路徑a.b.c{ d: 'foo', e: 'bar' }

var object = { 
 
    a: { 
 
    b: { 
 
     c: { 
 
     d: 'foo', 
 
     e: 'bar', 
 
     f: 'baz' 
 
     } 
 
    } 
 
    }, 
 
    g: { 
 
    h: 1 
 
    } 
 
}; 
 

 
function pickPropsByPath(object, path, arrayOfPropsNames) { 
 
    return _.pick(_.get(object, path), arrayOfPropsNames); 
 
} 
 

 
console.log(pickPropsByPath(object, 'a.b.c', ['d', 'e'])) // => { d: 'foo', e: 'bar' }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>