如何在数组中获取对象值?

时间:2014-04-01 21:39:16

标签: javascript jquery

很抱歉我的阵列很长但很简单。如何访问此数组的对象?

例如,我的数组的某些部分(用于构造网格)具有分配给它们的字母“P”。如果我想在If statement中删除那个字母“P”(所以将字母设置为“”),我该如何访问? E.G

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: ""
            }

        ]

];

3 个答案:

答案 0 :(得分:3)

您有一个包含包含对象的数组的数组。因此,您索引到第一个数组以获取所需的子数组,然后索引到该数组以获取该对象。 E.g:

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

它获得了第一个子阵列,以及其中的第一个对象。 [0][1]获取第一个子阵列的第二个对象,依此类推。 [1][0]获取第二个子阵列的第一个对象。等

  

如果我想在If语句中删除那个字母“P”(所以将字母设置为“”),我该如何访问?

JavaScript中的if,而不是If

要做到这一点,首先你必须找到包含该字母的子数组和条目,这意味着循环。使用letter: "p"找到子对象和对象的索引后,您可以修改该对象(删除letter属性,将其设置为其他内容等),或者使用{{1}在子阵列上完全从中删除该对象。

答案 1 :(得分:2)

让我通过解释如何来解决这个问题,我将在这里解决如何访问元素的问题。首先尝试输出地图:

alert(map);

这会告诉你它是一个数组。好吧,让我们检查那个数组中的第0个元素。我们选择零,因为我们知道数组通常从该数字开始索引:

alert(map[0]);

这本身就是一个数组,所以让我们尝试将它作为数组处理,使用相同的原则:

alert(map[0][0]);

啊哈!这将告诉我们它是一个对象,所以我们现在可以尝试访问一些属性:

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

提供所有的所有,并且您将掌握一些基本技术,以便一般性地分析这类问题。

如果您发现某些东西返回"未定义"然后你可能走错了路,并且需要尝试别的东西 - 要么你误解了结构,你的一个对象属性被错误地命名,要么你已经选择了一个索引值超出范围。

解决问题的另一种方法是查看定义中的外部分隔符:

[ ... ]

方括号是一个很好的标志,内容是一个数组 - 在你的情况下,这是前两个级别。因此划定了第三级:

{ ... }

这是内容是对象的标志。

答案 2 :(得分:1)

您有一个包含对象作为元素的数组。首先遍历外部数组,然后遍历内部数组并在找到它们时替换字母。 jsfiddle here。您会注意到第一次运行会将值设置为空字符串,因此第二次运行将找不到任何字母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++;
        }
    }
}