У меня есть этот объект, который я пытался напечатать в моем шаблоне ejs без синтаксиса объектов. Я следовал за ответом здесь в StackOverflow и успешно печатал его без синтаксиса, но он не печатал все во вложенном объекте. Я имею в виду, что в данных есть два вложенных объекта (f и g). Таким образом, свойства (ключи) в этих вложенных объектах, таких как имя, адрес электронной почты, телефон, страна, автомобиль, отсутствуют в выводе. Как я могу также отобразить это с их уважаемыми значениями?
Вот объект и код, который я использовал для его форматирования:
router.get("/", async(req, res) => {
try{
let data = {
a: 'Tesla',
b: 'Mclaren',
c: 'Ferrari',
d: 'Lamborghini',
e: 'Lotus',
'f':{
name: 'John',
'e-mail': 'xyz@example.com',
phone: '+12345678',
country: 'USA',
car: 'Toyota Prius'
},
'g':{
name: 'Sophie',
'e-mail': 'xyz@example.com',
phone: '+12345678',
country: 'UK',
car: 'Nissan Bluebird'
},
h: 'Volkswagen',
i: 'Bugatti',
j:[
'% mileage',
'% top speed',
'% suspension',
'% navigation',
'% horsepower',
'% 0-60s'
]
}
var result = Object.entries(data).reduce((result, [key, value]) => {
key = key.replace(/([A-Z]|\d+)/g, ' $1').replace(/^(.)/, (unused, p1) => p1.toUpperCase());
if (!['string', 'number', 'boolean'].includes(typeof value)) {
value = Object.entries(value).map(([key, value]) => (typeof value == 'boolean') ? (value ? key : undefined) : value).filter(v => v !== undefined).join(',');
}
result.push(`${key}: ${value}`);
return result;
}, []);
var finalData = result.join('\n');
res.render("data", {data: finalData});
}catch(e){
req.flash("error", "Unable to retrieve data. Please try again!");
res.redirect("/");
}
});
Это результат, если я напечатаю его в консоли:
A: Tesla
B: Mclaren
C: Ferrari
D: Lamborghini
E: Lotus
F: John,xyz@example.com,+12345678,USA,Toyota Prius
G: Sophie,xyz@example.com,+12345678,UK,Nissan Bluebird
H: Volkswagen
I: Bugatti
J: % mileage,% top speed,% suspension,% navigation,% horsepower,% 0-60s
Это результат после того, как я отобразил его в моем шаблоне ejs:
A: Tesla B: Mclaren C: Ferrari D: Lamborghini E: Lotus F: John,xyz@example.com,+12345678,USA,Toyota Prius G: Sophie,xyz@example.com,+12345678,UK,Nissan Bluebird H: Volkswagen I: Bugatti J: % mileage,% top speed,% suspension,% navigation,% horsepower,% 0-60s
Ожидаемый результат:
A: Tesla
B: Mclaren
C: Ferrari
D: Lamborghini
E: Lotus
F:
Name: John
Email: xyz@example.com
Phone: +12345678
Country: USA
Car: Toyota Prius
G:
Name: Sophie
Email: xyz@example.com
Phone: +12345678
Country: UK
Car: Nissan Bluebird
H: Volkswagen
I: Bugatti
J:
% mileage
% top speed
% suspension
% navigation
% horsepower
% 0-60s