Javascript 仅删除嵌套对象中的特定键

Javascript 仅删除嵌套对象中的特定键,javascript,arrays,typescript,Javascript,Arrays,Typescript,我不熟悉json和javascript,我有以下输入: var input= { "careerLevelGroups": [ { "201801": 58, "201802": 74, "careerLevel": "Analyst", "careerLevels": [ { "201801":

我不熟悉json和javascript,我有以下输入:

    var input= {
    "careerLevelGroups": [
        {
            "201801": 58,
            "201802": 74,
            "careerLevel": "Analyst",
            "careerLevels": [
                {
                    "201801": 29,
                    "201802": 37,
                    "careerID": "10000100"
                },
                {
                    "201801": 29,
                    "201802": 37,
                    "careerID": "10000110"
                }
            ]
        },
        {
            "201801": 58,
            "201802": 74,
            "careerLevel": "Consultant",
            "careerLevels": [
                {
                    "201801": 29,
                    "201802": 37,
                    "careerID": "10000080"
                },
                {
                    "201801": 29,
                    "201802": 37,
                    "careerID": "10000090"
                }
            ]
        }
    ]
};
我需要创建以下结果:

    var result = {
  [

        {
           "careerLevel": "Analyst",
            "careerLevels": [
                {
                    "201801": 29,
                    "201802": 37,
                    "careerID": "10000100"
                },
                {
                    "201801": 29,
                    "201802": 37,
                    "careerID": "10000110"
                }
            ]
        },
        {

            "careerLevel": "Consultant",
            "careerLevels": [
                {
                    "201801": 29,
                    "201802": 37,
                    "careerID": "10000080"
                },
                {
                    "201801": 29,
                    "201802": 37,
                    "careerID": "10000090"
                }
            ]
        }
    ]
}
我想我需要做一些事情,比如在where中,我只需要careerLevel和careerLevels属性(rest-all应该被删除)。我尝试了json的循环结构和delete命令,但我没有得到正确的格式

 let clJson = input.careerLevelGroups.forEach(element => {
  let keysToDelete = Object.keys(element).filter( // return keys with careerLevel and careerLevels);
 // delete keys

});

从对象“obj”中删除项“xyz”的正确方法是


删除obj[“xyz”]

从对象“obj”中删除项“xyz”的正确方法是


删除obj[“xyz”]

使用
delete
操作符删除按键:

var输入={
“CareerLevel组”:[{
"201801": 58,
"201802": 74,
“careerLevel”:“分析师”,
“CareerLevel”:[{
"201801": 29,
"201802": 37,
“careerID”:“10000100”
},
{
"201801": 29,
"201802": 37,
“careerID”:“10000110”
}
]
},
{
"201801": 58,
"201802": 74,
“职业水平”:“顾问”,
“CareerLevel”:[{
"201801": 29,
"201802": 37,
“careerID”:“10000800”
},
{
"201801": 29,
"201802": 37,
“careerID”:“10000900”
}
]
}
]
};
const result=input.careerLevelGroups;
result.forEach(obj=>{
Object.keys(obj.forEach)(key=>{
如果(key!=“careerLevels”&&key!=“careerLevels”)删除对象[key];
})
});

控制台日志(结果)使用
delete
操作符删除键:

var输入={
“CareerLevel组”:[{
"201801": 58,
"201802": 74,
“careerLevel”:“分析师”,
“CareerLevel”:[{
"201801": 29,
"201802": 37,
“careerID”:“10000100”
},
{
"201801": 29,
"201802": 37,
“careerID”:“10000110”
}
]
},
{
"201801": 58,
"201802": 74,
“职业水平”:“顾问”,
“CareerLevel”:[{
"201801": 29,
"201802": 37,
“careerID”:“10000800”
},
{
"201801": 29,
"201802": 37,
“careerID”:“10000900”
}
]
}
]
};
const result=input.careerLevelGroups;
result.forEach(obj=>{
Object.keys(obj.forEach)(key=>{
如果(key!=“careerLevels”&&key!=“careerLevels”)删除对象[key];
})
});

控制台日志(结果)最简单的解决方案似乎是使用对象分解:

const input={“careerLevel组”:[{“201801”:58,“201802”:74,“careerLevel”:“分析师”,“careerLevel”:[{“201801”:29,“201802”:37,“careerID”:“10000100”},{“201801”:29,“201802”:37,“careerID”:“10000110”},{“201801”:58,“201802”:74,“careerLevel”:“顾问”,“careerLevel”:“顾问”,“careerLevel”:[{“201801”:29,“201802”:37,“careerID”:“10000800”},{“201801”:29,“201802”:37,“careerID”:“10000900”}]}
常量简化=({careerLevel,careerLevels})=>({careerLevel,careerLevels})
const result={careerLevelGroups:input.careerLevelGroups.map(simplify)}

console.log(result)
最简单的解决方案似乎是使用对象分解:

const input={“careerLevel组”:[{“201801”:58,“201802”:74,“careerLevel”:“分析师”,“careerLevel”:[{“201801”:29,“201802”:37,“careerID”:“10000100”},{“201801”:29,“201802”:37,“careerID”:“10000110”},{“201801”:58,“201802”:74,“careerLevel”:“顾问”,“careerLevel”:“顾问”,“careerLevel”:[{“201801”:29,“201802”:37,“careerID”:“10000800”},{“201801”:29,“201802”:37,“careerID”:“10000900”}]}
常量简化=({careerLevel,careerLevels})=>({careerLevel,careerLevels})
const result={careerLevelGroups:input.careerLevelGroups.map(simplify)}

console.log(result)
我需要动态删除其他属性I需要动态删除其他属性y您的结果(
result={[…]}
)不是合法对象。如果它的一个属性保留名称“careerLevelGroups”(
result={careerLevelGroups:[..]}
),则您的结果(
result={[..]}
)不是合法对象。它的一个属性是否应该保留名称“careerLevelGroups”(
result={careerLevelGroups:[..]}
)?