javascript - 在 JavaScript 中查询对象数组

标签 javascript arrays

我有一个这样的坐标数组:

coordinates = [
    {x: 1, y: 2},
    {x: 3, y: 4},
    {x: 5, y: 6},
    {x: 7, y: 8},
    {x: 9, y: 0}
];

我想在这个数组中查询这样的对象。

var searchFor = {x: 1, y: 2}

我试过这个:

if ($.inArray(searchFor, coordinates) !== -1) {
       ...
}

但这总是返回-1。我只需要有关对象是否在此数组中的真/假信息。我怎样才能做到这一点?

最佳答案

这是因为对象彼此不相等 - 即使它们具有相同的属性/值 - 除非它们是完全相同的实例。

您需要做的是手动遍历数组:

for( var i=0, l=coordinates.length, found = false; i<l; i++) {
    if( coordinates[i].x == searchFor.x && coordinates[i].y == searchFor.y) {
        found = true;
        break;
    }
}
if( found) {
    // ...
}

关于javascript - 在 JavaScript 中查询对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17343053/

相关文章:

javascript - 使用 jquery 创建并复制选择框

javascript - 为什么我在使用 React-Web 时遇到这些错误

php - 按字母顺序对具有相同值的键进行排序

c++ - 将用户输入的 int 作为大小,将 int 作为数组,然后显示数组,最后一个索引到第一个索引

javascript - 我还需要 babel 和 NodeJs5 吗?

javascript - Fabric js - 如果鼠标在 DIV 中则开始自由绘图

javascript - 多个图表延迟问题,SVG 还是 HTML5 Canvas?

java - 如何检查字符串数组中的每个元素是否为整数?

arrays - 震动 : Make Nested Make a nested array as part of main array

java - 尝试查找数组平均值时数组大小不正确,如何解决此问题?