【问题标题】:Whitelist a set of properties from a multidimensional json array and delete the rest将多维 json 数组中的一组属性列入白名单并删除其余的
【发布时间】:2015-06-30 21:54:18
【问题描述】:

例如,我将使用 github api 响应作为我的数据输入。

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

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

【问题讨论】:

    标签: javascript json multidimensional-array lodash


    【解决方案1】:

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

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

    【讨论】:

    • 在一级属性上就像一个魅力,我想我只需要在更深的对象上再次调用它。
    猜你喜欢
    • 1970-01-01
    • 2018-10-07
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多