Javascript 仅删除嵌套对象中的特定键
我不熟悉json和javascript,我有以下输入:Javascript 仅删除嵌套对象中的特定键,javascript,arrays,typescript,Javascript,Arrays,Typescript,我不熟悉json和javascript,我有以下输入: var input= { "careerLevelGroups": [ { "201801": 58, "201802": 74, "careerLevel": "Analyst", "careerLevels": [ { "201801":
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:[..]}
)?