gpt4 book ai didi

javascript - 我必须遍历多级 JSON 并删除某些键

转载 作者:行者123 更新时间:2023-11-30 09:12:59 24 4
gpt4 key购买 nike

我有一个如下所示的 JSON。我需要删除 array = ["field", "type", "input"]

中提到的一些键
const result = {
"condition":"AND",
"rules":[
{
"id":"search_across",
"operator":"equal",
"value":1
},
{
"condition":"AND",
"rules":[
{
"id":"Recipe ID",
"field":"Recipe ID",
"type":"string",
"input":"text",
"operator":"equal",
"value":"100"
},
{
"condition":"AND",
"rules":[
{
"id":"Recipe ID",
"field":"Recipe ID",
"type":"string",
"input":"text",
"operator":"equal",
"value":"200"
}
]
}
]
}
]
}

我需要移除第 n 层的 key 。我只能从第一级删除它(如 JSON 中所示)

最佳答案

您可以使用 for...in 循环创建递归函数,以在任何级别按键删除属性。

const data = {"condition":"AND","rules":[{"id":"search_across","operator":"equal","value":1},{"condition":"AND","rules":[{"id":"Recipe ID","field":"Recipe ID","type":"string","input":"text","operator":"equal","value":"100"},{"condition":"AND","rules":[{"id":"Recipe ID","field":"Recipe ID","type":"string","input":"text","operator":"equal","value":"200"}]}]}]}

function remove(data, keys) {
for(let i in data) {
if(keys.includes(i)) delete data[i];
else if(typeof data[i] === 'object') remove(data[i], keys)
}
}

remove(data, ["field", "type", "input"])
console.log(data)

关于javascript - 我必须遍历多级 JSON 并删除某些键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57214834/

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