3
votes

Récupérer la clé d'un objet dans un tableau en react-native

    10-1-201910-5-2019-10-9-2019-9-5-2019
    10-1-201910-5-2019-10-9-2019-9-5-2019
    10-1-201910-5-2019-10-9-2019-9-5-2019
    10-1-201910-5-2019-10-9-2019-9-5-2019

3 commentaires

Vous pouvez résoudre le problème [objet objet] avec JSON.stringify .


Object.values ​​(myObject) vous donnera un tableau de toutes les valeurs de cet objet. par exemple: Object.values ​​({one: 1, two: 2}) [1] === 2


@ JJNL77 peut afficher la structure json avec laquelle vous travaillez?


3 Réponses :


1
votes

veuillez vous référer aux exemples ci-dessous ...

const obj1 = {
a: "bonjour",
b: 25,
c: ['pomme', 'mangue']
};

console.log (Object.values ​​(obj1)); // Array ['bonjour', 25, Array ['pomme', 'mangue']]
console.log (Object.keys (obj1)); // Tableau ['a', 'b', 'c']

donc dans votre cas,
si vous utilisez comme Object.values ​​(item) // item doit être object
si vous utilisez comme Object.values ​​(item [key]) // item [key] doit être object
si vous utilisez comme Object.values ​​(item [0]) // item [0] doit être object

par conséquent, tout ce qui se trouve à l'intérieur de Object.values ​​() ou Object.keys () doit être object

donc élément [clé] ou élément [0] doit être évalué en objet
dans votre code, il évalue indéfini donc seules les erreurs ci-dessous se produisent

TypeError: undefined n'est pas un objet (évaluation Object.keys (item [key]))
TypeError: undefined n'est pas un objet (évaluation de Object.keys (item [0]))

selon vos besoins, vous devez maintenant utiliser comme l'un des ci-dessous:

  • Object.values ​​(item) [0] ou Object.values ​​(item) [1] (statique)
  • Object.values ​​(item) .filter ((val, ind) => {}) (basé sur des conditions)
  • Object.values ​​(item) .map ((val, ind) => {}) (si vous voulez tout utiliser)

J'espère que cette explication détaillée vous aidera.


0 commentaires

2
votes

Vous pouvez obtenir les clés d'un objet particulier avec object.keys

La méthode Object.keys () renvoie un tableau des propres noms de propriétés d'un objet donné, dans le même ordre que nous obtenir avec une boucle normale.

const object1 = {
  a: 'somestring',
  b: 42,
  c: false
};

console.log(Object.keys(object1));
// expected output: Array ["a", "b", "c"]


0 commentaires

1
votes

Je vous recommande d'utiliser lodash: https://lodash.com/docs/4.17.11 #get

const obj1 = {
  a: 'hello',
  b: 25,
  c: ['apple', 'mango']
};

_.get(obj1, 'a');
// => 'hello'

_.get(obj1, 'c[0]');
// => 'apple'

_.get(obj1, 'a.b.c', 'default');
// => 'default'


0 commentaires