我有一组对象,在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目标代码本身,因为这实际上是在更大范围内完成的,真实数据会动态地添加到几个地方的对象中。我所能做的就是调用该对象。我为这种含糊不清道歉。
感谢所有回复的人,虽然提议的解决方案都没有起作用,但我最终使用对象中的一个属性来区分水果和蔬菜。
答案 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);
}
}
}
尝试上面的代码,如果您正在寻找对象水果,您可以相应地添加条件。希望它有所帮助。