javascript - 检查数组中是否存在具有特定属性的对象

标签 javascript list search object

请记住,我还不知道要搜索哪些关键字(现在只是跳上编码潮流......),所以这可能是一个非常容易回答的问题!

我有一个对象数组,比如说

M = [A_1, A_2, ..., A_n]

,其中 A_i 是类的实例

A = {text: "string", coords:[x,y]}

我的问题是:检查数组 M 是否包含对象 A_i 的快速、优雅、简单的方法是什么

A_i.text="your mom" && A_i.coords = [9,9]

这是真的吗?

我可以访问 underscore.js,它似乎有一些漂亮的做事方式,但我对如何实现它有点困惑......

我尝试过的事情(使用 underscore.js 库)是:

var isitso = _.find(M, function (i) { 
    return i.text == "your mom" && i.coords == [9,9];
});

在学习 JS 的这个阶段,我希望有很多不同的方法来解决这个问题。只是看看可以做什么以及如何做。

提前致谢!

最佳答案

困难在于数组相等是引用相等(它们必须是相同的内存位置),而不是值相等(它们具有相同的值)。如果您将支票更改为:

      return i.text == 'your mom' && i.coords[0] == 9 && i.coords[1] == 9;

它应该可以工作。在这种情况下,您将检查第一个 (0) 和第二个 (1) 元素是否具有必需的值,而不是比较数组对象本身。比较数字确实是比较值而不是引用值。

关于javascript - 检查数组中是否存在具有特定属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13548705/

相关文章:

PHP/MySQL 联系人列表

java hibernate标准问题

JavaScript 条件快捷方式。更多然后一个如果

javascript - React Native 不识别静态变量

javascript - 用户界面上弹出消息

javascript - 来自 Chrome 扩展的获取请求导致 403 Forbidden

Android - 如何访问另一个列表中列表的元素数据?

list - R:向数据框列表中的列添加不同的值

PHP使用通配符搜索数组?

php - 全文搜索方法不起作用