在javascript中将十进制数转换为百分比
我编写了返回json的代码,示例如下:在javascript中将十进制数转换为百分比,javascript,percentage,Javascript,Percentage,我编写了返回json的代码,示例如下: [ { "id": "12345", "header": "<a class=\"card-link\" href=\"http://www.google.com\" target=\"_blank\"> 12345</a>- solved-1", "title": "Training Summary Report", "description": "", "link": "",
[
{
"id": "12345",
"header": "<a class=\"card-link\" href=\"http://www.google.com\" target=\"_blank\"> 12345</a>- solved-1",
"title": "Training Summary Report",
"description": "",
"link": "",
"labels": [
{
"filter": "type",
"value": "course 1"
},
{
"filter": "Subject",
"value": "Sub. 1239"
},
{
"filter": "Idea",
"value": "Idea . 53"
}
]
}
{
"id": "12345",
"header": "<a class=\"card-link\" href=\"http://www.google.com\" target=\"_blank\"> 12345</a>- solved-1",
"title": "Training Summary Report",
"description": "",
"link": "",
"labels": [
{
"filter": "type",
"value": "course 1"
},
{
"filter": "Subject",
"value": "Sub. 1239"
},
{
"filter": "Idea",
"value": "Idea . 53-34-98:0.0045, 98-11-00:0.09856, 44-22-88:0.09875, 22-98-90:0.3245"
}
]
}
]
结果是:
{
"id": "12345",
"header": "<a class=\"card-link\" href=\"http://www.google.com\" target=\"_blank\"> 12345</a>- solved-1",
"title": "Training Summary Report",
"description": "",
"link": "",
"labels": [
{
"filter": "type",
"value": "course 1"
},
{
"filter": "Subject",
"value": "Sub. 1239"
},
{
"filter": "Idea",
"value": "Idea . 53-34-98:0,45%, 98-11-00:9.8%, 44-22-88:9.875%, 22-98-90:32%"
}
]
}
最终矩阵列数据集示例:
53-34-98:0.0045, 98-11-00:0.09856, 44-22-88:0.09875, 22-98-90:0.3245
有人可以帮我修改代码,把十进制数转换成百分比吗?
谢谢您可以首先拆分包含数据的字符串(
queryResult.final_Matrix[index]
)以分别获得每个部分,然后,对于每个部分,使用“:”
再次拆分并应用一些数学(乘以100)以获得百分比:
let input=“53-34-98:0.0045,98-11-00:0.09856,44-22-88:0.09875,22-98-90:0.3245”;
let times=input.split(“,”);
常量结果=[];
times.forEach((elem)=>
{
常量tempArr=元素拆分(“:”);
结果.推送(tempArr[0]+“:”+(数学轮((tempArr[1]*100)*100)/100)+“%”;
});
让finalResult=result.join(“,”);
控制台日志(最终结果)代码>您可以循环,根据字符串进行拆分,减少标记数组(那些由逗号分隔的标记,
),最后使用转换后的百分比值重新生成标记
let arr=[{“id”:“12345”,“header”:“-solved-1”,“title”:“培训总结报告”,“description”:“link”:“labels”:[{“filter”:“type”,“value”:“course 1”},{“filter”:“Sub.1239”},{“filter”:“Idea”,“value”:“Idea.53”}、{“id”:“12345”、“标题”:“-solved-1”、“标题”:“培训总结报告”、“说明”:“链接”:“标签”:[{“过滤器”:“类型”、“值”:“课程1”}、{“过滤器”:“主题”、“值”:“Sub.1239”}、{“过滤器”:“理念”,”值“:“Idea.53-34-98:0.0045,98-11-00:0.09856,44-22-88:0.09875,22-98-90:0.3245”}];
arr.forEach({labels})=>{
labels.forEach(label=>{
让[x,value]=label.value.split(“Idea”);
如果(值){
label.value=“Idea.”+value.split(“,”).reduce((a,t)=>{
让[str,perc]=t.split(“:”);
if(perc)str+=“:”+(Number(perc.trim())*100).toFixed(2)+“%”
返回a.concat(str);
},[])。join();
}
});
});
console.log(arr);
.as控制台包装{max height:100%!important;top:0;}
下面是使用stringsplit
,join
方法进行的对象转换
const convert=item=>{
常量标签=item.labels.map(标签=>{
if(label.value.includes(“Idea”)){
返回{
标签
值:label.value
.拆分(“,”)
.map(val=>{
常量strs=val.split(“:”);
const last=strs.pop();
strs.push(`${Math.round(数字(最后)*100*100)/100}%`);
返回strs.join(“:”);
})
.join(“,”)
};
}否则{
返回{…标签};
}
});
返回{
项目
标签
};
};
常数arr=[
{
身份证号码:“12345”,
标题:
“-1”,
标题:“培训总结报告”,
说明:“,
链接:“,
标签:[
{
过滤器:“类型”,
值:“课程1”
},
{
过滤器:“主题”,
价值:“第1239款”
},
{
过滤:“创意”,
价值观:“理念53”
}
]
},
{
身份证号码:“12345”,
标题:
“-1”,
标题:“培训总结报告”,
说明:“,
链接:“,
标签:[
{
过滤器:“类型”,
值:“课程1”
},
{
过滤器:“主题”,
价值:“第1239款”
},
{
过滤:“创意”,
价值:
“想法。53-34-98:0.0045,98-11-00:0.09856,44-22-88:0.09875,22-98-90:0.3245”
}
]
}
];
console.log(arr.map(convert));
1)循环到原始数据2) 在键“label”上,使用“filter”==“Idea”搜索数组
3) 执行拆分和联接以转换
data=[{...'label':{'filter':'Idea'...}...},{}];
var labels=[],valueInd=[],value=[],div2=[];
data.map((element)=>{
labels = element.labels;
valueInd=labels.findIndex(elem=>elem.filter==='Idea');
value=labels[valueInd].value;
value=value.split(' . ')[0]+ ' . '+value.split(' . ')[1].split(',').map((elem)=>{
var div2=elem.split(':');
return div2.length>1?div2[0]+':'+(Number(div2[1])*100).toFixed(2)+'%':div2[0];
}).join(',');
labels[valueInd].value=value;
});
console.log(data);
您需要做两件事,首先将值拆分为几个值,例如,您得到53-34-98:0.0045,因此您将其拆分为两个变量53-34-98和0.0045,然后,您所追求的值是0.0045(第二个变量)*100,然后添加以下字符“%”。如果单个初始变量收到多个值,则使用“,”来拆分它们。我想您的意思是
53-34-98:0.45%
,而不是53-34-98:0,45%
,对吗?
53-34-98:0.0045, 98-11-00:0.09856, 44-22-88:0.09875, 22-98-90:0.3245
data=[{...'label':{'filter':'Idea'...}...},{}];
var labels=[],valueInd=[],value=[],div2=[];
data.map((element)=>{
labels = element.labels;
valueInd=labels.findIndex(elem=>elem.filter==='Idea');
value=labels[valueInd].value;
value=value.split(' . ')[0]+ ' . '+value.split(' . ')[1].split(',').map((elem)=>{
var div2=elem.split(':');
return div2.length>1?div2[0]+':'+(Number(div2[1])*100).toFixed(2)+'%':div2[0];
}).join(',');
labels[valueInd].value=value;
});
console.log(data);