使用下划线js或lodash从数组中删除对象

时间:2015-09-18 11:26:44

标签: javascript arrays underscore.js lodash

我想删除一个包含' twitter'来自'内容'使用下划线js的数组。

contents = 
[
  {
     "facebook": "test",
     "preview_image_url": "url",
     "preview_title": "title",
     "preview_description": "description"
  },
  {
     "twitter": "test",
     "preview_image_url": ""
  }
]

期望结果数组如下

contents = 
[
  {
     "facebook": "test",
     "preview_image_url": "url",
     "preview_title": "title",
     "preview_description": "description"
  }
]

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

如果你想要一个vanilla JS版本:

var filtered = contents.filter(function (obj) {
  return Object.keys(obj).indexOf('twitter') === -1;
});

或者,接受T.J的评论:

var filtered = contents.filter(function (obj) {
  return !obj.hasOwnProperty('twitter');
});

答案 1 :(得分:2)

使用remove()

_.remove(contents, _.ary(_.partialRight(_.has, 'twitter'), 1));