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