有人有解决方案可以将一个密钥的这些密钥对值相加吗?我尝试使用dict[id] += parseFloat(value)将它们添加到密钥对值中,但是会导致错误的操作。我尝试使用eval(valuestring),我很确定键中的值仍然是字符串。需要获取排行榜的每个ID的总和。

任何帮助深表感谢。

dict_tips键的输出

  '["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_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)

最佳答案

分割字符串,然后parseFloat并汇总值:



const data = {
  '["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,'
}

const sums = Object.keys(data).reduce((results, key) => {
  results[key] = data[key].split(',')
    .map(item => parseFloat(item))
    .filter(item => !isNaN(item))
    .reduce((res, item) => res + item, 0)

  return results
}, {})

console.log(sums)

09-12 06:55