Javascript,密钥对值的总和';s
有人有一个解决方案来为一个密钥添加这些密钥对值吗?我尝试使用Javascript,密钥对值的总和';s,javascript,sum,key,leaderboard,Javascript,Sum,Key,Leaderboard,有人有一个解决方案来为一个密钥添加这些密钥对值吗?我尝试使用dict[id]+=parseFloat(value)将它们添加到密钥对值中,但这会导致错误的操作。我尝试过使用eval(valuestring),我非常确定键中的值仍然是字符串。需要为排行榜获取每个ID的总和 非常感谢您的帮助 dict_提示键的输出 '["U5WUV3A3G"]': '1000.0,200.0,300.0,100.0,500.0,420.0,42.0,98.0,500.0,150.0,300.0,300.0,25
dict[id]+=parseFloat(value)
将它们添加到密钥对值中,但这会导致错误的操作。我尝试过使用eval(valuestring)
,我非常确定键中的值仍然是字符串。需要为排行榜获取每个ID的总和
非常感谢您的帮助
dict_提示键的输出
'["U5WUV3A3G"]': '1000.0,200.0,300.0,100.0,500.0,420.0,42.0,98.0,500.0,150.0,300.0,300.0,25.0,200.0,',
'["U5FHMCWP7"]': '50.0,500.0,1000.0,45.0,1000.0,100.0,15.0,3.0,675.0,100.0,225.0,25.0,900.0,100.0,1000.0,10.0,30.0,0.001,0.005,1.755,1.724,1.5,',
'["U5SJQMME3"]': '100000.,100.0,100.0,100.0,50.0,100.0,100.0,40000.0,10.0,200.0,500.0,',
'["U6KAYAJ5Q"]': '100.0,200.0,900.0,100.0,100.0,100.0,1000.0,10.0,10.0,1000.0,100.0,100.0,1.0,10.0,800.0,200.0,100.0,190.0,190.0,10.0,10.0,',
'["U6F1AHQ8H"]': '10.0,100.0,',
'["U3H65TS9K"]': '500.0,100.0,200.0,500.0,35.414,12.345,',
'["U5HUZG3MF"]': '1.0,0.5,42.0,44.0,1.0,1.0,7.995,100.0,100.0,100.0,50.0,100.0,4.0,5.0,5.0,5.0,5.0,5.0,',
'["U5ZPTLXV5"]': '5.0,',
'["U6EMQC2LF"]': '737.998,2000.0,1000.0,300.0,666.0,6000.0,5000.0,5000.0,1000.0,5000.0,999.0,1.0,5000.0,3000.0,5000.0,9999.0,',
'["U62EVB2P7"]': '50.0,20.0,100.0,1.0,100.0,50.0,100.0,50.0,100.0,100.0,1.0,',
'["U3GJ9SREZ"]': '150.0,100.0,100.0,100.0,',
'["U6F0KBT2P"]': '1000.0,100.0,1000.0,100.0,800.0,100.0,100.0,',
'["U5WD17D5E"]': '150.0,75.0,',
'["U697Y6BL3"]': '5.0,1.0,51.0,2.0,1.0,1.0,5.0,',
'["U6GU038HX"]': '4000.0,',
'["U4B0NK2NR"]': '100.0,500.0,200.0,100.0,100.0,100.0,100.0,',
'["U6C23F8MT"]': '49.0,100.0,',
'["U5KQY01ST"]': '105.0,',
'["U6FSC0CC8"]': '100.0,100.0,',
'["U659939GF"]': '20.0,100.0,100.0,100.0,',
'["U5URNPRSA"]': '5.0,20.0,5.0,5.0,50.0,',
'["U5VAMV76F"]': '0.5,20.0,200.0,200.0,200.0,200.0,100.0,200.0,5.0,500.0,200.0,50.0,',
'["U5UL7KWKU"]': '150.0,200.0,',
'["U61NYHM25"]': '64.0,2.0,',
'["U6CMX965S"]': '10.0,10.0,20.0,50.0,30.0,',
'["U5G40R5PF"]': '499.0,',
'["U4XHS3DHA"]': '51.0,',
'["U69MY9WDS"]': '10.0,6.414,10.0,10.0,',
'["U666S65RC"]': '100.0,100.0,',
'["U5X3MEZ39"]': '1.0,1.0,10.01,10.1,0.002,0.01,1.1,' ]
核心
var dict_tips=[];
var dict_计数=[];
var总和=[]
对于(变量i=0;i<200;i++){
var str=res.messages.matches[i].text;
var stdout=capcon.captureStdout(函数范围(){
对于(变量x=46;x<55;x++){
process.stdout.write(str[x]);
}
});
var id=JSON.stringify(stdout.match(/.{1,9}/g))
var stdout=capcon.captureStdout(函数范围(){
对于(变量x=76;x<85;x++){
process.stdout.write(str[x]);
} });
var extract=JSON.stringify(stdout.match(/.{1,9}/g));
var parse=extract.indexOf(/.RDD | RD | R | D |::|/g)
var x=检查和添加(id,摘录)
函数检查和添加(id,摘录){
var found=dict_tips.some(函数(el){
返回el.key==id;})
if(!found){if(parse=-1)
{
var格式=(“”+extract.slice(2,9)).replace(/.RDD | RD | R | D |::|/g,);
var x=format.substr(0,9)+''+format.substr(9);
var总计=x.split(“”)
dict_tips.push({key:id})
dict_tips[id]+=总计
}
其他的
{
var format=extract.slice(2,9)
var x=format.substr(0,9)+''+format.substr(9)
var总计=x.split(“”)
dict_tips.push({key:id})
dict_tips[id]=“”;
dict_tips[id]+=总计
}
}
其他的
{
var extract=stdout.match(/.{1,9}/g);
var parse=extract.indexOf(/.RDD | RD | R | D |::|/g)
if(parse=-1)
{
var格式=(“”+extract).replace(/.RDD | RD | R | D |::|/g,);
var x=format.substr(0,9)+''+format.substr(9);
var总计=x.split(“”)
dict_tips[id]+=总计
}
其他的
{
var format=extract.slice(1,9)
var x=format.substr(0,9)+''+format.substr(9);
var总计=x.split(“”)
dict_tips[id]+=总计
};
}
}
}
var sum=dict_tips.reduce(函数(a,b){返回a+b;},0);
log(JSON.stringify(sum))
控制台日志(dict_提示)
在PHP中,可以在逗号上进行分解,考虑javascript的拆分。之后,您将通过split函数刚刚创建的数组的每个索引运行一个循环,并将其添加到总和中。您还需要对索引的每个值执行parsefloat。拆分字符串,然后parsefloat
并汇总值:
const数据={
“[“U5WUV3A3G”]:“1000.0200.0300.0100.0500.0420.0,42.0,98.0500.0150.0300.0300.0,25.0200.0”,
“[“U5FHMCWP7”]:“50.0500.01000.0,45.01000.0100.0,15.0,3.0675.0100.0225.0,25.0900.0100.01000.0,10.0,30.0,0.001,0.005,1.755,1.724,1.5”,
“[“U5SJQMME3”]:“100000,100.0100.0100.0,50.0100.0100.040000.0,10.0200.0500.0”,
“[“U6KAYAJ5Q”]:“100.0200.0900.0100.0100.01000.0,10.0,10.01000.0100.0100.0,1.0,10.0800.0200.0100.0190.0190.0,10.0,10.0,10.0”,
“[“U6F1AHQ8H”]:“10.0100.0,”,
“[“U3H65TS9K”]:“500.0100.0200.0500.0,35.414,12.345”,
“[“U5HUZG3MF”]:“1.0,0.5,42.0,44.0,1.0,1.0,7.995100.0100.0100.0,50.0100.0,4.0,5.0,5.0,5.0,5.0”,
“[“U5ZPTLXV5”]:“5.0”,
“[“U6EMQC2LF”]:“737.9982000.01000.0300.0666.06000.05000.05000.01000.05000.0999.0,1.05000.03000.05000.09999.0”,
“[“U62EVB2P7”]:“50.0,20.0100.0,1.0100.0,50.0100.0,50.0100.0100.0,1.0,”,
“[“U3GJ9SREZ”]:“150.0100.0100.0100.0”,
“[“U6F0KBT2P”]:“1000.0100.01000.0100.0800.0100.0100.0”,
“[“U5WD17D5E”]:“150.0,75.0,”,
“[“U697Y6BL3”]:“5.0,1.0,51.0,2.0,1.0,1.0,5.0,”,
“[“U6GU038HX”]:“4000.0”,
“[“U4B0NK2NR”]:“100.0500.0200.0100.0100.0100.0100.0100.0”,
“[“U6C23F8MT”]:“49.0100.0”,
“[“U5KQY01ST”]:“105.0”,
“[“U6FSC0CC8”]:“100.0100.0,”,
“[“U659939GF”]:“20.0100.0100.0100.0”,
“[“U5URNPRSA”]:“5.0,20.0,5.0,5.0,50.0”,
“[“U5VAMV76F”]:“0.5,20.0200.0200.0200.0200.0100.0200.0,5.0500.0200.0,50.0”,
“[“U5UL7KWKU”]:“150.0200.0”,
“[“U61NYHM25”]:“64.0,2.0,”,
“[“U6CMX965S”]:“10.0,10.0,20.0,50.0,30.0”,
“[“U5G40R5PF”]:“499.0,”,
“[“U4XHS3DHA”]:“51.0”,
“[“U69MY9WDS”]:“10.0,6.414,10.0,10.0,”,
“[“U666S65RC”]:“100.0100.0,”,
“[“U5X3MEZ39”]:“1.0,1.0,10.01,10.1,0.002,0.01,1.1,”
}
const sums=Object.keys(数据).reduce((结果,键)=>{
结果[键]=数据[键]。拆分(',')
.map(项=>parseFloat(项))
.filter(项目=>!isNaN(项目))
.reduce((res,item)=>res+item,0)
返回结果
}, {})
log(sums)
您可以使用for in
简单地遍历数据键。
然后,您需要将字符串拆分成一个数组,并使用reduce
对值求和
const数据={
“[“U5WUV3A3G”]:“1000.0200.0300.0100.0500.0420.0,42.0,98.0500.0150.0300.0300.0,25.0200.0”,
“[“U5FHMCWP7”]:“50.0500.01000.0,45.01000.0100.0,15.0,3.0675.0100.0225.0,25.0900.0100.01000.0,10.0,30.0,0.001,0.005,1.755,1.724,1.5”,
“[“U5SJQMME3”]:“100000,100.0100.0100.0,50.0100.0100.040000.0,10.0200.0500.0”,
“[”U6KAY
var dict_tips = [];
var dict_counts = [];
var sum = []
for (var i = 0; i < 200 ; i++) {
var str = res.messages.matches[i].text;
var stdout = capcon.captureStdout(function scope() {
for (var x = 46 ; x < 55 ; x++) {
process.stdout.write(str[x]);
}
});
var id = JSON.stringify(stdout.match(/.{1,9}/g))
var stdout = capcon.captureStdout(function scope() {
for (var x = 76 ; x < 85 ; x++) {
process.stdout.write(str[x]);
} });
var extract = JSON.stringify(stdout.match(/.{1,9}/g));
var parse = extract.indexOf(/.RDD|RD|R|D|:| /g)
var x = checkAndAdd(id,extract)
function checkAndAdd(id,extract) {
var found = dict_tips.some(function (el) {
return el.key === id; })
if (!found) { if (parse = -1)
{
var format = ( ""+extract.slice(2,9)).replace(/.RDD|RD|R|D|:| /g,'');
var x = format.substr(0, 9) + " " + format.substr(9);
var total = x.split(" ")
dict_tips.push({key: id})
dict_tips[id] += total
}
else
{
var format = extract.slice(2,9)
var x = format.substr(0, 9) + " " + format.substr(9)
var total = x.split(" ")
dict_tips.push({key: id})
dict_tips[id] = "";
dict_tips[id] += total
}
}
else
{
var extract = stdout.match(/.{1,9}/g);
var parse = extract.indexOf(/.RDD|RD|R|D|:| /g)
if (parse = -1)
{
var format = ( "" + extract).replace(/.RDD|RD|R|D|:| /g,'');
var x = format.substr(0, 9) + " " + format.substr(9);
var total = x.split(" ")
dict_tips[id] += total
}
else
{
var format = extract.slice(1,9)
var x = format.substr(0, 9) + " " + format.substr(9);
var total = x.split(" ")
dict_tips[id] += total
};
}
}
}
var sum = dict_tips.reduce(function(a, b) { return a + b; }, 0);
console.log(JSON.stringify(sum))
console.log(dict_tips)