Хотя стандарт C ++ не имеет такого требования, некоторым компиляторам требуется, чтобы все шаблоны функций и классов были доступны в каждой используемой системе переводов. Фактически для этих компиляторов тела шаблонных функций должны быть доступны в файле заголовка. Повторить: это означает, что эти компиляторы не позволят их определять в файлах без заголовка, таких как .cpp-файлы
Существует ключевое слово export , которое должно смягчать этот проблема, но он нигде не близок к тому, чтобы быть портативным.
Вы можете взять 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)
Может быть, вы так выглядите?
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);
или повторно используете старый объект таким образом?
[119 ]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);
если есть только один объект / индекс, к которому вы можете получить доступ таким способом.
let obj = { '-L1Rm6VbfLLyFJ3Qi6K': {city: "Tokyo", date: "26-08-2004" } }
let op = Object.entries(obj).map(([key,value]) => ({
id: key,
...value,
}))
console.log(op[0])
Если объект будет иметь одно значение ключа, используйте его, в противном случае, как предложил @Code Maniac, вам следует использовать карту или forEach
const obj = { '-L1Rm6VbfLLyFJ3Qi6K': {city: "Tokyo", date: "26-08-2004" } }
const newobj = {
id: Object.keys(obj)[0],
...obj[Object.keys(obj)]
}
console.log(newobj)