【问题标题】:JavaScript Remove Object From Array Based on Child PropertyJavaScript 根据子属性从数组中删除对象
【发布时间】:2015-12-07 07:48:42
【问题描述】:

使用 vanilla JavaScript(由最新版本的 Chrome 支持,不用担心 IE)和/或 lodash/underscore 但没有 jQuery 我该如何获取这个数组:

[
  {
    "id": 1,
    "places": {
      "city": "boston"
    }
  },
  {
    "id": 2,
    "places": {
      "city": "new york"
    }
  }
]

...并删除具有“波士顿”城市的整个对象:

[
  {
    "id": 2,
    "places": {
      "city": "new york"
    }
  }
]

请记住,这个数组可能有几十个条目。谢谢!

http://plnkr.co/edit/JW3zd6A7OcmihM4CTh1D?p=preview

【问题讨论】:

    标签: javascript arrays filter filtering


    【解决方案1】:

    其中一种方法是使用过滤器。例如:

    var dataWithoutBoston = data.filter(function (el) {
      return el.places.city !== "boston";
    });
    

    为了使其可重用,您可以使用如下函数:

    function removeFromCity(data, name) {
      var result = data.filter(function (el) {
        return el.places.city !== name;
      });
      return result;
    };
    

    【讨论】:

    • 包装你的函数,你可以设置城市作为参数选择
    猜你喜欢
    • 2020-04-28
    • 2019-01-14
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    相关资源
    最近更新 更多