从javascript对象数组中获取特定对象的名称
我有一个对象数组,在从javascript对象数组中获取特定对象的名称,javascript,Javascript,我有一个对象数组,在console.log(array)之后基本上是这样的: 我需要检查数组,看看索引是水果还是蔬菜,但是当我尝试数组[0]时,我得到的是对象本身,而不是“水果” 我知道我可以通过调用array[0].banana获得“yellow”,通过调用Object.keys(array[0])获得“apple”和“banana”,但我不知道如何获得“Fruits”。此外,我只能访问对象,而不能访问对象的生成位置,如果这有任何区别的话 编辑/注释: 对于那些提问的人,我没有访问javasc
console.log(array)
之后基本上是这样的:
我需要检查数组,看看索引是水果还是蔬菜,但是当我尝试数组[0]
时,我得到的是对象本身,而不是“水果”
我知道我可以通过调用array[0].banana获得“yellow”,通过调用Object.keys(array[0])
获得“apple”和“banana”,但我不知道如何获得“Fruits”。此外,我只能访问对象,而不能访问对象的生成位置,如果这有任何区别的话
编辑/注释:
对于那些提问的人,我没有访问javascript对象代码本身的权限,因为这实际上是通过在多个位置动态添加到对象中的真实数据在更大范围内完成的。我所能做的就是调用对象。我为这种含糊不清表示歉意
感谢所有回答的人,虽然所有建议的解决方案都不起作用,但我最终使用对象中的一个属性来区分水果和蔬菜 对于密钥,您需要访问对象的结果。密钥结果:
Object.keys(array[0])[0]
var数组=[{水果:{苹果:{红',香蕉:{黄'},{蔬菜:{番茄:{红'}}];
write(“”+JSON.stringify(Object.keys(数组[0])[0],0,4)+“”);
write(“”+JSON.stringify(数组,0,4)+“”)代码>您能给我们看一下代码本身(而不是控制台日志)吗?我不确定你的要求是什么,但是你可以使用一个对象而不是一个以水果和蔬菜为键的数组。考虑以下事项:
// 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);
}
}
}
如果要从一个混合了这两种元素的数组中提取类型,可以这样做:
我希望这有帮助
试试上面的代码,如果您正在寻找一个对象,您可以相应地添加条件。希望有帮助。看起来您正在寻找对象的原型。您是否尝试过Object.getPrototypeOf(array[0])
?if(array.indefOf(Fruits)>-1)console.log(array[array.indefOf(Fruits)]
它对您有帮助吗?请显示数据的实际JavaScript对象表示形式。水果和蔬菜不是objecthm中的键,对象丢失,我只能猜测。谢谢你,这帮我找到了另一种解决问题的方法,尽管不是我想要的方法。
var object = {
fruits:[
{
apple: 'red'
}
]
};
var array = [
{
color: 'red',
name: 'apple',
type: 'fruit'
}
]
// 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);
}
}
}