我想用 underscore.js 实现某种 hasObject 函数。
示例:
var Collection = {
this.items: [];
this.hasItem: function(item) {
return _.find(this.items, function(existingItem) { //returns undefined
return item % item.name == existingItem.name;
});
}
};
Collection.items.push({ name: "dev.pus", account: "stackoverflow" });
Collection.items.push({ name: "margarett", account: "facebook" });
Collection.items.push({ name: "george", account: "google" });
Collection.hasItem({ name: "dev.pus", account: "stackoverflow" }); // I know that the name would already be enough...
出于某种原因,下划线 find 返回未定义...
我做错了什么?
最佳答案
看起来您正在过于字面地阅读下划线文档,其中 他们有:
var even = _.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
但是,这对您的情况没有任何意义,您只想查看 .name
属性是否等于
其他一些对象的 .name
,如下所示:
var Collection = {
items: [],
hasItem: function(item) {
return _.find(this.items, function(existingItem) { //returns undefined
return item.name === existingItem.name;
});
}
};
关于javascript - 在数组中查找对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11492580/