2
votes

Comment puis-je transformer cet objet en React-Native?

J'ai un objet comme celui-ci

​​

{ id:"-L1Rm6VbfLLyFJ3Qi6K", city: "Tokyo", date: "26-08-2004" }

et je veux transformer cet objet comme ceci:

{ -L1Rm6VbfLLyFJ3Qi6K: {city: "Tokyo", date: "26-08-2004" } }

Comment puis-je faire cela? Merci ...


4 commentaires

Utilisez lodash, carte!


Je ne veux pas pousser cet objet dans un tableau, je sais de cette façon ...


Votre objet peut-il avoir plusieurs clés?


Tout comme au-dessus pas beaucoup


4 Réponses :


1
votes

Vous pouvez prendre Object .entries et mappez -les au format souhaité.

let obj = { '-L1Rm6VbfLLyFJ3Qi6K': {city: "Tokyo", date: "26-08-2004" } }

let op = Object.entries(obj).map(([key,value]) => ({
  id: key,
  ...value,
}))

console.log(op)


3 commentaires

Je ne veux pas pousser cet objet dans un tableau, tout ce que je veux, c'est un objet ...


@SerdarGun Vous pouvez accéder à l'objet à l'intérieur du tableau, n'est-ce pas? votre contribution n'a-t-elle qu'une seule structure de ce type ou il peut y en avoir beaucoup?


Je ne sais pas, il y a un problème dans mon application et j'essaye toutes les manières différentes dans mon code. Je voulais juste apprendre de cette façon, cela peut résoudre mon problème :(



0
votes

Si l'objet doit être une valeur clé, utilisez-la, sinon, comme @Code Maniac l'a suggéré, vous devriez utiliser une carte ou forEach

const obj = { '-L1Rm6VbfLLyFJ3Qi6K': {city: "Tokyo", date: "26-08-2004" } }

const newobj = {
   id: Object.keys(obj)[0],
   ...obj[Object.keys(obj)]
}

console.log(newobj)


0 commentaires

0
votes

Vous ressemblez peut-être ainsi?

const obj1 = { "-L1Rm6VbfLLyFJ3Qi6K": {city: "Tokyo", date: "26-08-2004" } }

for (const id in obj1) {
   Object.assign(obj1, { id, ...obj1[id] })
   delete obj1[id];
}

console.log(obj1);

ou réutiliser l'ancien objet de cette manière?

const obj1 = { "-L1Rm6VbfLLyFJ3Qi6K": {city: "Tokyo", date: "26-08-2004" } }

const obj2 = {}

for (const id in obj1) {
  Object.assign(obj2, { id, ...obj1[id] })
}

console.log(obj2);


0 commentaires

1
votes

s'il n'y a qu'un seul objet / index auquel vous pouvez accéder de cette manière.

let obj = { '-L1Rm6VbfLLyFJ3Qi6K': {city: "Tokyo", date: "26-08-2004" } }

let op = Object.entries(obj).map(([key,value]) => ({
  id: key,
  ...value,
}))

console.log(op[0])


0 commentaires