javascript - 通过其键值从嵌套 JSON 中查找和删除对象
问题描述
我想删除嵌套 JSON 中的对象。如下例所示,我的目标是从对象中删除数学。但我必须搜索“mat”键并将其删除。在我的实际情况中,subjects 属性中有 10 个对象。
const obj = {
"id":"1234",
"name":"John Doe",
"level":"elementary",
"subjects":[
{
"key":"mat",
"name":"maths",
"teacher":"Mr Smith",
},
{
"key":"eng",
"name":"english",
"teacher":"Mrs Smith",
}
],
"homeroom_teacher":"Mrs Brown"
}
删除后我想要:
const obj = {
"id":"1234",
"name":"John Doe",
"level":"elementary",
"subjects":[
{
"key":"eng",
"name":"english",
"teacher":"Mrs Smith",
}
],
"homeroom_teacher":"Mrs Brown"
}
解决方案
我会过滤
const obj = { "id":"1234", "name":"John Doe", "level":"elementary",
"subjects":[
{ "key":"mat", "name":"maths", "teacher":"Mr Smith", },
{ "key":"eng", "name":"english", "teacher":"Mrs Smith", }
], "homeroom_teacher":"Mrs Brown" };
const keep = ["eng"]; // assuming more could be present
obj.subjects = obj.subjects.filter(({key}) => keep.includes(key))
console.log(obj)
推荐阅读
- java - onClick 函数未执行
- powershell - 如何使用 Powershell 替换文件中的文本?
- python - python中几乎增加序列
- c - 如何获取二叉树中节点的最小祖先
- javascript - 是否有像键盘一样工作的 USB 秤(如条形码扫描仪)?
- python - 从Django中的GET参数中提取带有索引的数组
- matlab - 黄油函数是否总是产生稳定的滤波器系数?
- mysql - 如何从 VB.NET 和 MySql 8 中的给定记录中读取特定列?
- reactjs - 正确格式化引导列?(抵消等)
- php - 使用 Laravel Excel 包添加自定义页脚和页眉