简体   繁体   中英

Accessing the data inside an object when you dont know the name of the key

I have a set of data where the key on the data is not predictable. I am trying to read the nested object but I cant seem to access it so I can check the value of the next key Physicians or NonPhysicians . I tried using the key of the nested value to access it but it only returns undefined. When I console out item i get the expected values and when I console out org I get the keys on the objects so im not sure whats going wrong here.

 const NEWRATES = { standard: [ { "ORG A": { Physicians: { telehealth: { weekdayEncounters: 15, weeknightEncounters: 16.25, weekendDayEncounters: 16.25, weekendNightEncounters: 17.25, holidayEncounters: 17.25, stipend: 0, }, }, NonPhysicians: { telehealth: { orgName: "Standard", weekdayEncounters: 15, weeknightEncounters: 16.25, weekendDayEncounters: 16.25, weekendNightEncounters: 17.25, holidayEncounters: 17.25, stipend: 0, }, }, date: "07-2021", orgName: "some org", ltc: false, }, }, { "ORG B": { Physicians: { telehealth: { weekdayEncounters: 15, weeknightEncounters: 16.25, weekendDayEncounters: 16.25, weekendNightEncounters: 17.25, holidayEncounters: 17.25, stipend: 0, }, }, NonPhysicians: { telehealth: { orgName: "Standard", weekdayEncounters: 15, weeknightEncounters: 16.25, weekendDayEncounters: 16.25, weekendNightEncounters: 17.25, holidayEncounters: 17.25, stipend: 0, }, }, date: "07-2021", orgName: "some org", ltc: false, }, }, ], ltc: [ { Infinity: { Physicians: { associates: { roundingHours: 10, onCallHours: 10, weekdayEncounters: 16, weeknightEncounters: 17.25, weekendDayEncounters: 18.25, weekendNightEncounters: 19.25, holidayEncounters: 20.25, stipend: 0, }, }, NonPhysicians: { associates: { roundingHours: 0, onCallHours: 0, weekdayEncounters: 15, weeknightEncounters: 16.25, weekendDayEncounters: 16.25, weekendNightEncounters: 17.25, holidayEncounters: 17.25, stipend: 0, }, }, date: "07-2021", orgName: "some org", ltc: true, }, }, ], }; const sortData = Object.values(NEWRATES); const NEWfiltered = !!NEWRATES && sortData; const byProviderType = !!NEWfiltered && NEWfiltered.map((item, idx) => { for (let i = 0; i < item.length; i++) { let list = []; let org = Object.keys(item[i]).toString(); console.log(item[org]); } });

You are close. You need to keep going one level deeper.

// Your Code Now
console.log(item[org]);

// SHOULD BE
console.log(item[i][org]);

Make this update, and you will see it working. HERE is a working version on stackblitz.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM