我有以下数组。我试图在处理过程中从这个数组中排除某些对象。
例如。我想排除那种类型的狗'并且只使用任何类型为duck的对象。
我想使用下划线/ lodash这样做,但如果需要,将使用普通JS。
animals: [
{
type: 'duck',
name: 'quack',
},
{
type: 'duck',
name: 'quieck',
},
{
type: 'dog',
name: 'bark',
},
]
答案 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'});