簡體   English   中英

如何獲取數組中的對象值?

[英]How can I get an object value in my array…?

抱歉,我的數組很長,但是很簡單。 如何訪問此數組的對象?

例如,我數組的某些部分(用於構建網格)分配了字母“ P”。 如果要在If statement刪除字母“ P”(因此將字母設置為等於“”),如何訪問該字母? 例如

If (someVar == thisVar) { // some way to set a certain letter to "" }

數組:

var map = [
        [
            {
                color: "g",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
            {
                color: "w",
                letter: "P"
            },
            {
                color: "w",
                letter: ""
            },
            {
                color: "w",
                letter: ""
            },
            {
                color: "w",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
            {
                color: "w",
                letter: ""
            },
            {
                color: "w",
                letter: ""
            }],
           [ {
                color: "g",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            },
            {
                color: "b",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            }

        ],
    [ {
                color: "b",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            },
            {
                color: "b",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
            {
                color: "g",
                letter: "P"
            },
             {
                color: "w",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            }

        ],

        //SEPERATION

        [ {
                color: "w",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
            {
                color: "g",
                letter: "B"
            },
            {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            }

        ],

        // SEPERATION

    [ {
                color: "b",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
            {
                color: "b",
                letter: ""
            },
            {
                color: "b",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            }

        ],

        // SEPERATION

        [ {
                color: "b",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            },
            {
                color: "b",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            },
            {
                color: "b",
                letter: ""
            },
            {
                color: "b",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            }

        ],

        // SEPERATION

        [ {
                color: "b",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            },
            {
                color: "b",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            },
             {
                color: "b",
                letter: "P"
            },
             {
                color: "w",
                letter: ""
            },
            {
                color: "w",
                letter: ""
            },
            {
                color: "w",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: "P"
            }

        ],

        // SEPERATION

        [ {
                color: "g",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            },
            {
                color: "b",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
            {
                color: "w",
                letter: ""
            },
            {
                color: "w",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            }

        ],

        // SEPERATION

        [ {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
            {
                color: "w",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            }

        ],

        // SEPERATION

        [ {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
             {
                color: "g",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
            {
                color: "g",
                letter: ""
            },
             {
                color: "w",
                letter: ""
            },
             {
                color: "b",
                letter: ""
            }

        ]

];

您有一個包含包含對象的數組的數組。 因此,您索引第一個數組以獲取所需的子數組,然后索引至該數組以獲取對象。 例如:

var obj = map[0][0];
console.log(obj.color); // "g"

那將獲得第一個子數組和其中的第一個對象。 [0][1]獲取第一個子數組的第二個對象,依此類推。 [1][0]獲取第二個子數組的第一個對象。 等等。

如果要在If語句中刪除字母“ P”(將字母設置為等於“”),該如何訪問?

在JavaScript中是if ,不是If

為此,首先必須找到包含該字母的子數組和條目,這意味着循環。 找到子數組和letter: "p"的對象的索引后,您可以修改該對象(刪除letter屬性,將其設置為其他內容,等等),或者在子Array#splice上使用Array#splice刪除完全脫離了那個對象。

讓我通過解釋如何解決這里的元素來回答這個問題。 首先嘗試輸出地圖:

alert(map);

這將告訴您這是一個數組。 好了,讓我們檢查一下該數組中的第零個元素。 我們選擇零,因為我們知道數組通常從該數字開始索引:

alert(map[0]);

它本身就是一個數組,所以讓我們也嘗試使用相同的原理將其視為數組:

alert(map[0][0]);

啊哈! 這將告訴我們它是一個對象,因此我們現在可以嘗試訪問一些屬性:

alert(map[0][0].color);

放手所有這些,您將掌握一些基本技術來大致分析此類問題。

如果發現某項返回“ undefined”,則可能是您走了一個錯誤的彎路,並且需要嘗試其他一些事情-您對結構的理解有誤,對象屬性之一被錯誤地命名或您選擇了索引超出范圍的值。

解決該問題的另一種方法是看到定義中的外部定界符是:

[ ... ]

方括號是內容是數組的一個好兆頭-在您的情況下,這適用於前兩個級別。 因此,描述了第三層:

{ ... }

這表明內容是對象。

您有一個包含對象作為元素的數組的數組。 首先遍歷外部數組,然后遍歷內部數組,並在找到字母時替換它們。 jsfiddle在這里 您會注意到,第一次運行會將值設置為空字符串,因此第二次運行將找不到任何帶有字母P的值。

var replaced = 0;
for(var i = 0; i < map.length; i++)
{
    var subMap = map[i];
    for( var j = 0; j < subMap.length; j++ )
    {
        if(subMap[j].letter == "P")
        {
            subMap[j].letter = "";
            console.debug('replaced P with empty string');
            replaced++;
        }
    }
}

暫無
暫無

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

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