从javascript对象数组中获取特定对象的名称

时间:2016-03-02 19:18:08

标签: javascript

我有一组对象,在console.log(array)之后基本上看起来像这样:

[Fruits,Vegetables]
    0 : Fruits
         apple : red
         banana: yellow
    1 : Vegetables
         tomato: red

我需要检查数组以查看索引是水果还是蔬菜,但是当我尝试array[0]时,我得到了对象本身而不是#34; Fruits"。

我知道我可以到达"黄色"致电array[0].banana并获取" apple"和"香蕉"致电Object.keys(array[0]),但我不知道如何到达#34; Fruits"。此外,我只能访问该对象,而不是对象所在的位置,如果这有任何区别。

修改/注: 对于那些提出要求的人,我无法访问javascript目标代码本身,因为这实际上是在更大范围内完成的,真实数据会动态地添加到几个地方的对象中。我所能做的就是调用该对象。我为这种含糊不清道歉。

感谢所有回复的人,虽然提议的解决方案都没有起作用,但我最终使用对象中的一个属性来区分水果和蔬菜。

3 个答案:

答案 0 :(得分:0)

对于密钥,您需要访问Object.keys结果的结果:

Object.keys(array[0])[0]

var array = [{ Fruits: { apple: 'red', banana: 'yellow' } }, { Vegetables: { tomato: 'red' } }];
	
document.write('<pre>' + JSON.stringify(Object.keys(array[0])[0], 0, 4)+ '</pre>');
document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');

答案 1 :(得分:0)

您能告诉我们代码本身(而不是控制台日志)吗?我不确定你的要求是什么,但你可以使用一个对象而不是一个水果和蔬菜的数组作为关键。请考虑以下事项:

var object = {
    fruits:[
        {
            apple: 'red'
        }
    ]
};

如果您正在寻找从数组中抽象出来的类型,那么您可以选择这样做:

var array = [
    {
        color: 'red',
        name: 'apple',
        type: 'fruit'
    }
]

我希望这有帮助!

答案 2 :(得分:0)

// For getting all the keys and value of a json object

for (var key in array) {
    if (array.hasOwnProperty(key)) {
        var val = array[key];
        var e = array[key];
        console.log(key+" : "+val);
        }
    for (var key in e) {
        if (e.hasOwnProperty(key)) {
            var val = e[key];
            console.log(key+" : "+val);
        }
    }
}

尝试上面的代码,如果您正在寻找对象水果,您可以相应地添加条件。希望它有所帮助。