簡體   English   中英

返回在JS對象中共享相同值的所有屬性名稱

[英]Return all property names that share the same value in JS Object

我有一個對象數組,我想返回僅包含快樂人名字的數組,並在每個人都高興時返回所有名字。 我無法獲得的是所有人都高興時獲得所有名字。 有任何想法嗎?

編輯:這是對象。

  [
  { 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 data = [ { name: 'Don', disposition: 'Happy' }, { name: 'Trev', disposition: 'Happy' }, ] console.log(findHappyPeople(data)); function findHappyPeople(people) { return people .filter(function(p) { return p.disposition === "Happy" }) .map(function(p) { return p.name }); } 

或使用箭頭函數語法:

 const data = [ { name: 'Don', disposition: 'Happy' }, { name: 'Trev', disposition: 'Happy' }, ] console.log(findHappyPeople(data)); function findHappyPeople(people) { return people .filter(p => p.disposition === "Happy") .map(p => p.name); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM