gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 02:13:56 26 4
gpt4 key购买 nike

我是 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"
}
]
}
]
}

我认为我需要做一些事情,比如我只需要careerLevel和careerLevels属性(其余的都应该删除)。我尝试了 json 的循环结构和删除命令,但我没有获得正确的格式。

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

});

最佳答案

使用delete运算符删除键:

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

const result = input.careerLevelGroups;
result.forEach(obj => {
Object.keys(obj).forEach(key => {
if (key !== 'careerLevel' && key !== 'careerLevels') delete obj[key];
})
});
console.log(result);

请注意,这会改变原始对象 - 它不会创建副本。

关于javascript - 仅删除嵌套对象中的特定键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49579662/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com