Underscore.jsを使用しています。次の JavaScript 配列があるとします。
var birds = [
{ name: 'pigeon', count: 2 },
{ name: 'swallow', count: 6 }
];
そして、任意の鳥の名前を付けたいと思います。既に配列にある場合は、カウントを 1 増やしたいと思います。そうでない場合は、カウントを 1 にして追加したいと思います。Underscore でこれを行う最善の方法は何ですか?
現在、私はやっています:
var mybird = 'swan';
var bird_present = _.find(birds, function(b) { return b.name === mybird) });
if (!bird_present) {
birds.append({ name: mybird, count: 1});
} else {
_.each(birds, function(b){
if (b.name === mybird) {
b.count += 1;
}
});
}
しかし、.find と .each の両方を使用すると、面倒に感じます。よりコンパクトな方法はありますか?