Javascript 获取包含值的对象的索引

Javascript 获取包含值的对象的索引,javascript,jquery,Javascript,Jquery,我试图获取对象在数组中所属的第一个索引。例如: winning = [Object, Object, Object, Object, Object, Object, Object, Object] 0: Object 1: 0 2: 0 3: 0 1: Object 4: 0 5: 0 6: 0 2: Object 3: Object 4: Object 5: Object 6: Object 7: Object 我需要做的是运行如下命令: winnin

我试图获取对象在数组中所属的第一个索引。例如:

winning = [Object, Object, Object, Object, Object, Object, Object, Object]
0: Object
   1: 0
   2: 0
   3: 0

1: Object
   4: 0
   5: 0
   6: 0

2: Object
3: Object
4: Object
5: Object
6: Object
7: Object
我需要做的是运行如下命令:

winning[objNum][square] = -1;
square
表示单击的
div
id。我需要做的是,当我单击一个div时,我需要它在
winning
对象数组中搜索,找出哪个对象包含被单击的div的编号,并存储在变量`objNum中。有没有jQuery或javascript方法可以实现这一点

示例:如果单击id为5的div,则需要运行的命令是:

winning[1][5] = -1;
这就是我创建对象的方式

var winning = [{1:0, 2:0, 3:0},{4:0, 5:0, 6:0},{7:0, 8:0, 9:0},
               {1:0, 4:0, 7:0},{2:0, 5:0, 8:0},{3:0, 6:0, 9:0},
               {1:0, 5:0, 9:0},{7:0, 5:0, 3:0}];    
HTML:


自从标记jQuery之后:

$.each(winning, function(idx, obj){
    if( obj[ square] != undefined ){
        obj[ square]= -1;
         return false;/* break loop*/
    }
});
所有对象中的所有关键点都必须是唯一的


如果你能看到你的html结构,你很可能会用它来索引数组中的对象,而不必执行这个循环,这很简单…:D…只是另一种思考方式。查看演示

var objs=[{0:0,1:0},{2:0,3:0},{4:0,5:0}],n;

$('.click').click(function(){
    n=$(this).index();
    objs.forEach(function(v,i){  //not a jquery function
        if(objs[i][n]!=undefined)  objs[i][n]-=1;
    });

});

需要查看对象的地图吗that@charlietfl我添加了一些代码,我相信这就是你想要的,如果ID不是唯一的,那就有问题了。将需要一种方法来匹配数组索引。请用html创建演示。我猜你可以得到基于html结构的索引ID是分区唯一的听起来像
Math.floor(square/3)==objNum
是你想要的吗?我添加了更多的代码并尝试了你的代码,但它没有更新任何东西用你正在尝试的代码在jsfiddle.net中创建一个演示。我可以,但我看不出你的div和每个对象中的3个键之间的关系。我相信你的数据可以重组,但仍然不清楚yetobject[square]可能存在并且为零。您应该使用“长方体中的正方形”。若html结构如此简单……你们可以在DOM中使用元素索引……并像这样跳过循环
var objs=[{0:0,1:0},{2:0,3:0},{4:0,5:0}],n;

$('.click').click(function(){
    n=$(this).index();
    objs.forEach(function(v,i){  //not a jquery function
        if(objs[i][n]!=undefined)  objs[i][n]-=1;
    });

});