Как получить ключ для массива, значение которого равно True

#javascript #arrays #object

#javascript #массивы #объект

Вопрос:

Я пытаюсь получить все ключи на моем объекте со значением «T» (true) и показать их в компоненте, но у меня возникают проблемы.

Я пытался с помощью for и forEach, но я не могу получить ключи.

Это мой метод рендеринга, а это объект

 render(){
   const races = this.state.data.racesTrack.Races;
        const racesList = [];
}
  

Мне нужно видеть это так

 exacta
hq
place:
quinella
show: 
spr: 
trifecta: 
wps:


  Image with the object: https://i.stack.imgur.com/en09V.png
  

Комментарии:

1. Не могли бы вы вставить объект в надлежащем синтаксисе?

2. Добавлено изображение с объектом

3. Проблема, о которой вы спрашиваете, не связана с Reactjs и касается основ javascript. Только что опубликовал ответ для вас.

Ответ №1:

Вы можете сделать что-то подобное в ES6:

 var raceList = []
var races = {
  a: "T",
  b: "F",
  c: "T",
  d: "F"
}

for (key in races) {
  if (races[key] == "T") {
    raceList.push(key)
  }
}

console.log(raceList)  

Ответ №2:

Проблема, о которой вы спрашиваете, не связана с Reactjs и касается основ javascript.

Более простым решением может быть использование массива ключей объектов и метода Filter:

 var race = {
  a: "T",
  b: "F",
  c: "T",
  d: "F"
}
var sort = Object.keys(race).filter((key)=>{
  return race[key]==='T'
})
console.log(sort)
  

Комментарии:

1. Может быть сокращено до .filter(key => race[key] === 'T') .