我无法弄清楚为什么我的对象具有相同的值,我想我每次都在创建一个新对象。
for (i = row; i <= y; i++) {
if (t !== 0 && $('#' + i + '' + col).css('background-color') == 'rgb(0, 0, 0)') {
console.clear(); //testing
var obj = {
rows: i,
cols: col
};
vblack.push(obj);
vred.length = 0;
//testing purposes only, printing contents of vblack array
for (var j = 0; j < vblack.length; j++) {
console.log("j " + j + " rows " + obj.rows + " col " + obj.cols);
};
} else if (t === 0 && $('#' + i + '' + col).css('background-color') == 'rgb(255, 0, 0)') {
var obj = {
rows: i,
cols: col
};
vred.push(obj);
vblack.length = 0;
}
}
将其打印到控制台日志
j 0 rows 7 col 7
j 1 rows 7 col 7
j 2 rows 7 col 7
j 3 rows 7 col 7
我期待打印出来的是, 第4行第7行 第5行第7行 第6行第7行 第7行第7行
我正在尝试根据背景颜色记录表的x和y坐标,如果红色表示在黑色之间,我将vblack数组设置回0。
答案 0 :(得分:0)
将console.log
循环移到赋值循环之外。
for (i = row; i <= y; i++) {
if (t !== 0 && $('#' + i + '' + col).css('background-color') == 'rgb(0, 0, 0)') {
var obj = {
rows: i,
cols: col
};
vblack.push(obj);
vred.length = 0;
} else if (t === 0 && $('#' + i + '' + col).css('background-color') == 'rgb(255, 0, 0)') {
var obj = {
rows: i,
cols: col
};
vred.push(obj);
vblack.length = 0;
}
}
//testing purposes only
console.clear();
console.log("Black:");
for (var j = 0; j < vblack.length; j++) {
console.log("j " + j + " rows " + vblack[j].rows + " col " + vblack[j].cols);
};
console.log("Red:");
for (var j = 0; j < vred.length; j++) {
console.log("j " + j + " rows " + vred[j].rows + " col " + vred[j].cols);
};
答案 1 :(得分:0)
使用Javascript Arrays观看的东西,索引并不总是顺序的。而不是
for( var j = 0....
喜欢
for (j in vblack)
很高兴认为vblack总是会有0-n元素,但情况并非总是如此,。length将报告n + 1。