将某些数据从一个对象抓取到另一个对象

Grabbing certain data from one object to another object

我的目标是从数据库中获取某些值到 curated_database,但是我基本上坚持将多个项目添加到一个对象中。

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'}]
};

目标是从较大的对象中抓取相似的某些信息


curated_database = { 
0 : ['Micheal',245000,'director'],
1: ['John',245000,'manager'],
2: ['Judith',140000,'professor'],
3: ['Gill',98000,'scientist'],
4: ['Dave',30000,'retail associate']
};

我的尝试

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);
}

你可以这样实现:

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);