我正在尝试从货币转换器API中获取值,但很不幸,将数据引入所需值的方式是在嵌套对象中。为了解决这个问题,我发现了一个可以分解嵌套以获取我想要的估值器的函数
// Breaks down object nesting to access
const getNestedObject = (nestedObj, pathArr) => { return pathArr.reduce((obj, key) => (obj && obj[key] !== 'undefined') ? obj[key] : undefined, nestedObj); }
所以我有一个函数来获取传输率的值,它将正确的值打印到控制台,但是返回未定义的值。我确定它与函数嵌套有关,但是我无法解决。
// Gets current transfer rate from API
function $getTransferRate(currency1, currency2){ const transferSelector = currency1+"_"+currency2; console.log(transferSelector); $.get( "https://free.currencyconverterapi.com/api/v6/convert?q="+transferSelector , function( data ) { const transfer = getNestedObject(data.results, [transferSelector, 'val']); console.log(transfer); return transfer; }); }