2014-10-31 34 views
0

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

所以对象有这样

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

水平所以我想简单地切出这个对象-keep心中有大约一百个帐号,以便有吨)里面的教室水平。

我以前收到了巨大的答案过滤下降到仅1对象(发送),像这样

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

我想知道,是不是也许可以使用array.map说使用一切,除了教室?或者我应该以不同的方式来解决这个问题?

+0

'return {name:name,id:id,school:{name:name,id:id}}'? – Johan 2014-10-31 19:08:56

回答

0

个反复的解决方案将要经过的每个并删除了教室对象这样

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") 
     } 
} 

这具有线性复杂性,这是最好的解决办法..不知道。我也从中学习