从要发送的对象中筛选出密钥

Filter out a key from an object for send

本文关键字:筛选 密钥 对象      更新时间:2023-09-26

我正在尝试从要发送的对象中筛选出一个键。我有一个很大的json树,它有几个子级别,我只想在发送它之前过滤掉最底层的级别,部分原因是它很大,另一部分原因是最底层的数据完全没有使用(所以我想把它删掉)。

所以这个物体有这样的级别

Account: {name: name, id: id,
                            school: {name: name, id: id, 
                                              classroom: {name: name, id: id } } }

所以我试着简单地去掉这个对象中的课堂级别——记住,大约有一百个账户,所以有很多)。

我之前收到了一个很好的答案,过滤到只有1个对象(用于发送)像这样

 $scope.ids = $scope.myScope.map( function(obj){
    return obj.id;
});

我想知道,是否可以使用阵列地图来表示除了教室之外的所有东西?或者我应该以不同的方式来处理这个问题?

一个迭代解决方案是遍历每一个并删除课堂对象,如

obj = {"Account": {"name": "name", "id": "id",
                            "school": {"name": "name", "id": "id", 
                                     "classroom": {"name": "name", "id": "id" } } }}
for (key in obj){
    try{
        delete obj[key].school.classroom
    }
    catch(err){
        console.log("didn't have classroom object")
        }
}

这具有线性复杂性,但这是最好的解决方案吗。。不确定。我也会从中学习