簡體   English   中英

向Javascript數組添加對象

[英]Adding object to Javascript array

我無法弄清楚為什么我的對象具有相同的值,我想每次都在創建一個新對象。

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。

console.log循環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);
};

使用Javascript數組需要注意的一點是,索引並不總是順序的。 代替

for( var j = 0....

偏愛

for (j in vblack)

很高興想到vblack總是有0-n個元素,但並非總是如此,.length將報告n + 1個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM