2015-04-23 38 views
2

例如,我将使用github API响应作为我的数据输入。将多维json数组中的一组属性列入白名单,并删除其余部分

https://api.github.com/users/unsalted/repos

我有我想继续,我想放弃,因为我想保持输出我生成相当多的紧凑其余属性的列表。

我如何能实现我的目标没有这样做:

 for (var i = tagged.length - 1; i >= 0; i--) { 
      delete tagged[i].private; 
      delete tagged[i].owner.gravatar_id; 
      delete tagged[i].owner.url; 
      delete tagged[i].owner.followers_url; 
      delete tagged[i].owners.following_url; 
      delete tagged[i].gravatar_id; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 
      delete tagged[i].private; 

     }; 

我在项目中使用lodash所以lodash解决方案更受欢迎。

对于时间的缘故,我没有填写值的其余部分,但你的想法...

回答

4

对于一个给定的对象,你可以使用_.pick让您指定的唯一性;然后你可以将它映射到你的收藏。所以,你最终得到:

tagged = _.map(tagged, function (t) { 
    return _.pick(t, ['properties', 'to', 'keep']); 
}); 
+0

就像一级属性的魅力,我想我只需要再次调用它在更深的对象。 – unsalted

相关问题