我正在使用 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 的使用感觉很混乱。有没有更紧凑的方式?