Javascript 对象转换为格式化字符串

Javascript 对象转换为格式化字符串,javascript,Javascript,我正在尝试将输出转换为基于字符的格式化输出 我目前设法在产品标题旁边输出每个类别 让结果={ "2": { “标题”:“产品1”, “类别”:[{ “类别名称”:“类别1”, }], “价格”:“99” }, "3": { “标题”:“产品2”, “类别”:[{ “类别名称”:“类别2”, }], “价格”:“22” }, "4": { “标题”:“产品3”, “类别”:[{ “类别名称”:“类别1”, }], “价格”:“55” } } let items=“” for(var输入结果){

我正在尝试将输出转换为基于字符的格式化输出

我目前设法在产品标题旁边输出每个类别

让结果={
"2": {
“标题”:“产品1”,
“类别”:[{
“类别名称”:“类别1”,
}],
“价格”:“99”
},
"3": {
“标题”:“产品2”,
“类别”:[{
“类别名称”:“类别2”,
}],
“价格”:“22”
},
"4": {
“标题”:“产品3”,
“类别”:[{
“类别名称”:“类别1”,
}],
“价格”:“55”
}
}
let items=“”
for(var输入结果){
items+=`*${result[key]。类别[“0”].cat_name}::->${result[key]。title}($${result[key].price})`+“\n”
}
console.log(项目)

您需要首先收集所有类别及其产品,然后呈现结果

var数据={2:{title:“产品1”,category:[{cat_name:“category 1”}],price:“99”},3:{title:“产品2”,category:[{cat_name:“category 2”}],price:“22”},4:{title:“产品3”,category:[{cat_name:“category 1”},price:“55”},
categories=Object.create(空);
Object.values(data.forEach({title,category,price})=>
category.forEach({cat_name})=>
(categories[cat_name]=categories[cat_name]| |[])。push({title,price,cat_name}));
Object.entries(categories).forEach([category,products])=>{
log(`*${category}*:`);
products.forEach({title,price})=>console.log(`->${title}($$${price})`);
});
控制台日志(类别)

作为控制台包装{max height:100%!important;top:0;}
一种常见的方法是为类别构建一个对象,并将每个产品添加到相关类别中。我在下面的代码片段中完成了这项工作

在@NinaScholz的回答中,你可以将函数缩短,但我决定让它们保持这样,这样就更清楚发生了什么

让结果={
"2": {
“标题”:“产品1”,
“类别”:[{
“类别名称”:“类别1”,
}],
“价格”:“99”
},
"3": {
“标题”:“产品2”,
“类别”:[{
“类别名称”:“类别2”,
}],
“价格”:“22”
},
"4": {
“标题”:“产品3”,
“类别”:[{
“类别名称”:“类别1”,
}],
“价格”:“55”
}
}
常量类别={}
Object.keys(结果).forEach((键)=>{
常量项=结果[键]
const itemcegories=item.categories
itemCategories.forEach((类别)=>{
如果(!(category.cat_categories中的名称)){
类别[类别.类别名称]=[]
}
类别[类别.类别名称].推送({
标题:item.title,
价格:item.price
})
})
})
Object.key(categories).forEach((categority)=>{
console.log(“*”+category+”:*”)
常量项=类别[类别]
items.forEach((项目)=>{
console.log('->'+item.title+'($'+item.price+'))
})

})
Thx感谢您的回复!有没有建议如何将console.log语句的所有输出添加到
items
变量中?它应该是什么样子的?就像
类别一样
?或者仅仅是一个没有类别键的数组?Thx,基本上我需要整个格式化的字符串保存在一个变量中,然后我可以传递到一个文本区域。