javascript - 在数组中查找对象

标签 javascript underscore.js

我想用 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/

相关文章:

javascript - 获取使用的underscorejs的版本

javascript - 谷歌地图;将位置卡添加到标记

javascript - Kyle Simpson 的 YDKJS 中的动态范围和 `this`

javascript - 如何使用 onClick 触发两个函数reactJs

javascript - 从对象列表中根据另一个列表更新属性 underscorejs

javascript - 带有 MomentJS 的 UnderscoreJS 不会过滤动态数组的结果

javascript - 无法隐藏 HTML 表格

javascript - 在 vue 属性中添加条件而不是使用 v-if 条件

JavaScript : Make an array of value pairs form an array of values

javascript - 下划线标记在 backbone 中有什么作用,我们什么时候使用它?