Tenho um objeto JS extenso com muitos objetos aninhados, por exemplo:
data = {
sundriesIncreases : {
month1: { projectedIncrease: 1.3, actualIncrease: 1.3 },
month2: { projectedIncrease: 1.6, actualIncrease: 1.5 },
month3: { projectedIncrease: 1.4, actualIncrease: 1.4 },
month4: { projectedIncrease: 2, actualIncrease: 2.1 },
month5: { projectedIncrease: 1.2, actualIncrease: 1.3 },
//etc
},
//etc
}
Estou usando um loop para percorrer um conjunto de dados diferente e quero usar o índice desse loop para recuperar os dados dos meses correspondentes da matriz.
No entanto, estou tendo problemas para descobrir como obter um determinado valor do array filho pelo índice.
Até agora tentei obtê-lo por índice assim:
customerNumbers.forEach((amt, index) => {
let actInc = data.sundriesIncreases[index].actualIncrease;
console.log(`amt=${val} index=${index} increase=${actInc}`)
});
E convertendo o objeto pai em um array:
var increasesArr = Object.entries(data.sundriesIncreases);
customerNumbers.forEach((amt, index) => {
let actInc = increasesArr[index].actualIncrease;
console.log(`amt=${val} index=${index} increase=${actInc}`)
});
Mas até agora nada funciona.
Claro
customerNumbers.forEach((amt, index) => {
if (index == 0) {
let actInc = data.sundriesIncreases.month1.actualIncrease;
console.log(`amt=${val} index=${index} increase=${actInc}`)
}
});
funciona, mas não é o ideal.
Uma pesquisa no Google sobre o problema revela muitas informações sobre como obter a chave por valor e também sobre como fazer o oposto.
Alguém poderia me indicar a direção certa?
Como sundriesIncreases é um objeto com chaves como month1, month2 , etc., ele não é diretamente indexável como um array. No entanto, você pode converter as chaves do objeto para um array usando Object.keys() ou Object.entries() e então usar o índice para recuperar os dados corretos.