我试图在数组中获取对象所属的第一个索引。例如:
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
对象数组,并找出哪个对象包含被点击并存储在变量`objNum中的div的编号。这样做有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:
<body>
<div id="wrapper">
<div id="container">
<div id="blah">
<div id="1" class="boardSquares"></div>
<div id="2" class="boardSquares"></div>
<div id="3" class="boardSquares"></div>
<div id="4" class="boardSquares"></div>
<div id="5" class="boardSquares"></div>
<div id="6" class="boardSquares"></div>
<div id="7" class="boardSquares"></div>
<div id="8" class="boardSquares"></div>
<div id="9" class="boardSquares"></div>
</div>
</div>
</div>
</body>
答案 0 :(得分:1)
自标记的jQuery:
$.each(winning, function(idx, obj){
if( obj[ square] != undefined ){
obj[ square]= -1;
return false;/* break loop*/
}
});
所有对象中的所有键必须是唯一的。
如果可以看到你的html结构,很可能会用它来索引数组中的对象而不必执行这个循环
答案 1 :(得分:0)
这很简单......:D ......只是一些不同的思考方式。看看演示......
<强> http://jsfiddle.net/sjLQ3/ 强>
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;
});
});