Javascript 查找对象属性';按属性的s索引';s值

Javascript 查找对象属性';按属性的s索引';s值,javascript,Javascript,使用Javascript,我试图获取共享单击按钮值的对象属性的索引。我知道要搜索的对象的索引,计数器,但需要获取对象属性及其索引。例如,如果我单击值为“Poised”的按钮,我需要返回'item2'的索引,即1 var问题=[{ 'item1':'Alert', “项目2”:“准备就绪”, 'item3':'Ready', 'item4':'Eager' }, { “项目1”:“患者”, “第2项”:“勤奋”, “第3项”:“有力的”, 'item4':'Prepared' } ] 计数器=0

使用Javascript,我试图获取共享单击按钮值的对象属性的索引。我知道要搜索的对象的索引,
计数器
,但需要获取对象属性及其索引。例如,如果我单击值为“Poised”的按钮,我需要返回'item2'的索引,即1

var问题=[{
'item1':'Alert',
“项目2”:“准备就绪”,
'item3':'Ready',
'item4':'Eager'
},
{
“项目1”:“患者”,
“第2项”:“勤奋”,
“第3项”:“有力的”,
'item4':'Prepared'
}
]
计数器=0
按钮值=“保持平衡”

log(questions[counter])
正如@obermillerk所说,JavaScript对象没有索引。 但是您可以使用从数组中获取索引,该数组基本上包含该对象的值,按其值的顺序排列

var问题=[{
'item1':'Alert',
“项目2”:“准备就绪”,
'item3':'Ready',
'item4':'Eager'
},
{
“项目1”:“患者”,
“第2项”:“勤奋”,
“第3项”:“有力的”,
'item4':'Prepared'
}
];            
var指数;
问题。forEach(obj=>{
var value=Object.values(obj.indexOf(‘平衡’);
如果(值!=-1){
指数=价值;
}
})

控制台日志(索引)为什么不翻转对象的关键点和值?这样你就可以做obj了?或者给你的按钮一个不同的值(“项目2”)比它的显示文本(“平衡”),我很明显误解了你的问题以及。JavaScript对象没有索引,它们完全依赖于不按任何特定顺序排列的键,因此您无法从对象获取索引,除非您的键是一个数字并将其视为索引。在建议您任何解决方案之前,我必须先询问更多关于为什么这些是对象的上下文。为什么不直接返回键
“object2”
?一旦有了它,您将如何使用该“索引”?听起来像是…我不知道Object.values的结果顺序是有保证的。Object.values()方法返回给定对象自身可枚举属性值的数组,其顺序与for…in循环提供的顺序相同。但这并不意味着它们的顺序是预期的,只是顺序与for循环相同。它们的顺序可能是正确的,但这并不能证明这一点,而且可能会因JavaScript实现的不同而有所不同