Как я могу преобразовать этот объект в React-Native?

#javascript #reactjs #react-native

#javascript #reactjs #react-native

Вопрос:

У меня есть объект, подобный so

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

и я хочу преобразовать этот объект следующим образом:

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

Как я могу это сделать? Спасибо…

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

1. Используйте Lodash , map !

2. Я не хочу помещать этот объект в массив, я знаю этот способ…

3. Может ли ваш объект иметь несколько ключей?

4. Как и выше, не так много

Ответ №1:

Вы можете взять Object.entries и сопоставить их в желаемом формате.

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

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

console.log(op)  

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

1. Я не хочу помещать этот объект в массив, все, что мне нужно, — это объект…

2. @SerdarGun Вы можете получить доступ к объекту внутри массива, не так ли? имеет ли ваш ввод только одну такую структуру или их может быть много?

3. Я не знаю, в моем приложении проблема, и я пробую разные способы в своем коде. Я просто хотел изучить этот способ, это может решить мою проблему: (

Ответ №2:

если существует только один объект / индекс, к которому вы можете получить доступ таким образом.

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

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

console.log(op[0])  

Ответ №3:

Если объект будет представлять собой значение одного ключа, то используйте это, в противном случае, как предложил @Code Maniac, вам следует использовать map или forEach

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

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

console.log(newobj)  

Ответ №4:

Может быть, вы выглядите примерно так?

 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);  

или повторно использовать старый объект таким образом?

 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);