Javascript 返回在JS对象中共享相同值的所有属性名

Javascript 返回在JS对象中共享相同值的所有属性名,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我有一个对象数组,我想返回一个只包含快乐的人的名字的数组,并在每个人都快乐的时候返回所有的名字。 我没能得到的是在大家都高兴的时候得到所有的名字。有什么想法吗 编辑:这是对象 [ { name: 'Don', disposition: 'Happy' }, { name: 'Trev', disposition: 'Happy' }, ] function findHappyPeople(people) { var happyPeople = Object.keys(people

我有一个对象数组,我想返回一个只包含快乐的人的名字的数组,并在每个人都快乐的时候返回所有的名字。 我没能得到的是在大家都高兴的时候得到所有的名字。有什么想法吗

编辑:这是对象

  [
  { name: 'Don', disposition: 'Happy' },
  { name: 'Trev', disposition: 'Happy' },
]

function findHappyPeople(people) {

var happyPeople = Object.keys(people).filter(function(key) {
   if(people[key] === 'Happy') {
     return people[name]
   }
});

return happyPeople;

}

您有一个对象数组,因此这里不需要
Object.keys()

您可以在过滤器之后使用
.map()
操作以名称数组结束

你的
people[name]
代码不起作用,因为你没有
name
变量,只有在浏览器中的全局变量,这不是你想要的。您的数据有一个
.name
属性,因此请使用该属性

const数据=[
{姓名:'Don',性格:'Happy'},
{姓名:'Trev',性格:'Happy'},
]
log(findHappyPeople(数据));
功能findHappyPeople(人){
返回人
.filter(函数(p){返回p.disposition==“Happy”})
.map(函数(p){return p.name});

}
可能是
返回人员[“姓名”]
?请提供一个。请注意,
filter()
要求返回一个布尔值@ꜱᴜʀᴇꜱʜᴀᴛᴛᴀ 它不起作用。请添加一个
对象的示例。可能是一个愚蠢的问题,但我得到“p未定义”错误?@squekydave:我在答案中做了一个现场演示。它起作用了。确保函数参数定义正确。它现在工作正常,感谢您的澄清:)