基于子属性从数组中移除对象

JavaScript Remove Object From Array Based on Child Property

本文关键字:对象 数组 属性      更新时间:2023-09-26

使用香草JavaScript(由最新版本的Chrome支持,不要担心IE)和/或lodash/underscore 但没有jQuery我怎么能把这个数组:

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

…然后删除城市为"boston"的整个对象:

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

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

http://plnkr.co/edit/JW3zd6A7OcmihM4CTh1D?p =预览

可以做到这一点的方法之一是使用过滤器。例如:

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;
};