从数组

时间:2016-03-08 20:06:06

标签: javascript node.js underscore.js ecmascript-6 lodash

我有以下数组。我试图在处理过程中从这个数组中排除某些对象。

例如。我想排除那种类型的狗'并且只使用任何类型为duck的对象。

我想使用下划线/ lodash这样做,但如果需要,将使用普通JS。

animals: [
  {
    type: 'duck',
    name: 'quack',
  },
  {
    type: 'duck',
    name: 'quieck',
  },
  {
    type: 'dog',
    name: 'bark',
  },
]

2 个答案:

答案 0 :(得分:1)

我想你的数组代表变量animals。您可以使用Array.prototype.filter()功能。如果你想要所有的鸭子:

const animals = [
    { type: 'duck', name: 'quack' },
    { type: 'duck', name: 'quieck' },
    { type: 'dog', name: 'bark' },
];
const ducks = animals.filter(o => o.type === 'duck');

或者如果你想排除所有的狗:

const withoutDogs = animals.filter(o => o.type !== 'dog');

我使用了ES6语法。 ES5等价物将是:

var ducks = animals.filter(function(o) { return o.type === 'duck' });

答案 1 :(得分:1)

Underscore / LoDash方式,只是

var result = _.where(animals, {type: 'duck'});