Mi objetivo es tomar ciertos valores de la base de datos en curated_database, sin embargo, básicamente estoy atascado en agregar varios elementos a un objeto.
var curated_database = {}; var database = { 0: [{name: 'Micheal'}, {age: 45}, {education: 'BA'}, {income: 245000}, {occupation: 'director'}], 1: [{name: 'John'}, {age: 23}, {education: 'BA'}, {income: 60000}, {occupation: 'manager'}], 2: [{name: 'Judith'}, {age: 45}, {education: 'PhD'}, {income: 140000}, {occupation: 'professor'}], 3: [{name: 'Gill'}, {age: 28}, {education: 'MS'}, {income: 98000}, {occupation: 'scientist'}], 4: [{name: 'Dave'}, {age: 17}, {education: 'HS'}, {income: 30000}, {occupation: 'retail associate'}] };El objetivo es obtener cierta información similar del objeto más grande.
curated_database = { 0 : ['Micheal',245000,'director'], 1: ['John',245000,'manager'], 2: ['Judith',140000,'professor'], 3: ['Gill',98000,'scientist'], 4: ['Dave',30000,'retail associate'] };Mi intento
for(data in database){ desired_contents = [0,3,4] for(contents in desired_contents){ console.log(database[data][desired_contents[contents]]); } var k = database[data][0]; if (!currated_database[k.key]) { currated_database[k.key] = []; } currated_database[k.key].push(k.val); }puedes lograrlo de esta manera:
var curated_database = {}; var database = { 0: [{name: 'Micheal'}, {age: 45}, {education: 'BA'}, {income: 245000}, {occupation: 'director'}], 1: [{name: 'John'}, {age: 23}, {education: 'BA'}, {income: 60000}, {occupation: 'manager'}], 2: [{name: 'Judith'}, {age: 45}, {education: 'PhD'}, {income: 140000}, {occupation: 'professor'}], 3: [{name: 'Gill'}, {age: 28}, {education: 'MS'}, {income: 98000}, {occupation: 'scientist'}], 4: [{name: 'Dave'}, {age: 17}, {education: 'HS'}, {income: 30000}, {occupation: 'retail associate'}] }; var indexToExtract = new Set([0,3,4]); var wantedLst = Object.values(database) .map(lst => lst.filter((ob, idx) => indexToExtract.has(idx))) .map((lst, idx) => curated_database[idx] = lst.map(ob => Object.values(ob)[0])) console.log(curated_database);