请记住,我还不知道要搜索哪些关键字(现在只是跳上编码潮流......),所以这可能是一个非常容易回答的问题!
我有一个对象数组,比如说
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/