将多维json数组中的一组属性列入白名单,然后删除其余属性 [英] Whitelist a set of properties from a multidimensional json array and delete the rest

查看:120
本文介绍了将多维json数组中的一组属性列入白名单,然后删除其余属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

举例来说,我将使用github api响应作为我的数据输入.

For examples sake i'll use a github api response as my data input.

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

我有一个要保留的属性列表,其余的我想舍弃,因为我想保持我生成的输出更加紧凑.

I have a list of properties I want to keep, the rest I want to discard because I want to keep the output i'm generating considerably more compact.

不这样做,我怎么能实现自己的目标:

How can I achieve my goal without doing this:

      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解决方案.

I am using lodash in the project so lodash solutions are more than welcome.

有时候,我没有填写其余的值,但您明白了...

For times sake I didn't fill out the rest of the values but you get the idea...

推荐答案

对于给定的对象,可以使用_.pick保留仅指定的属性;然后您可以将其映射到您的收藏中.因此,您最终得到:

For a given object, you can use _.pick to keep only properties that you specify; and then you can map that over your collection. So, you end up with:

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

这篇关于将多维json数组中的一组属性列入白名单,然后删除其余属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆