Javascript jQuery:访问具有特定日期和文本的数字字符串的总和

Javascript jQuery:访问具有特定日期和文本的数字字符串的总和,javascript,jquery,string,sum,Javascript,Jquery,String,Sum,我有这个字符串: var result = " / 07-09-2012 73 ABC / 11-09-2012 195 DEF/ 03-09-2012 95 / 04-09-2012 188 ABC / 31-10-2012 72 / 18-09-2012 205 / 26-09-2012 244 ABC / 14-09-2012 86 / 20-09-2012 92 DEF / 28-09-2012 97 / 01-09-2012 95 DEF/ 17-09-2012 95 / 17-09-

我有这个字符串:

var result = " / 07-09-2012 73 ABC / 11-09-2012 195 DEF/ 03-09-2012 95 / 04-09-2012 188 ABC / 31-10-2012 72 / 18-09-2012 205 / 26-09-2012 244 ABC / 14-09-2012 86 / 20-09-2012 92 DEF / 28-09-2012 97 / 01-09-2012 95 DEF/ 17-09-2012 95 / 17-09-2012 83 / 12-09-2012 95 / 18-09-2012 95 ABC / 18-09-2012 69 / 21-09-2012 95 / 21-09-2012 95 ABC/ 24-09-2012 144 / 28-09-2012 93 DEF";
字符串分为3类

  • 日期(年月日)
  • 性格
  • 因此:07-09-2012 73 ABC

    我想得到数字的和,其中日期是09,有ABC字符

    目前,从另一个问题中,我发现了当字符串没有字符时,如何仅检索日期 例如:

    var result=“/07-09-2012 73/11-09-2012 195/03-09-2012 95/04-09-2012 188/31-10-2012 72/18-09-2012 205/26-09-2012 244/14-09-2012 86/20-09-2012 92/28-09-2012 97/01-09-2012 95/17-09-2012 83/12-09-2012 95/18-09-2012 95-09-2012 95/18-09-2012 95/19-09-2012 95/21-09-2012 95/24-09-2012-144/2012-09-144-93”;
    var resultar=result.split('/');
    var结果={}//按月计算
    对于(var i=0;i=11){//它有日期
    var resultTkn=resultArr[i]。拆分(“”);
    如果(resultTkn[1].length==10){//这是一个日期
    var date=resultTkn[1]。拆分('-');
    var总和=0;
    if(results.hasOwnProperty(日期[1])){
    总和=结果[日期[1];
    }
    sum+=parseFloat(resulttn[2]);
    结果[日期[1]]=总和;
    }
    }
    }
    $('div').text(结果[“09”])
    

    现在,我怎样才能做同样的事情,但是用特定字符检索特定日期或月份的总和。

    这是我目前对琴弦的拨弄:

    比如:
    results[“09/2012,ABC”]

    怎么样:

    function search(result, cat) {
        var data = [],
            lines = result.split(/\s*\/\s*/);
        for (var i = 0; i < lines.length; i++) {
            if (lines[i] === "") continue;
            var s = lines[i].split(/\s+/);
            data.push({
                date: s[0],
                number: parseInt(s[1], 10) || 0,
                char: s[2] || ""
            });
        }
    
        var num = 0;
        for (var j = 0; j < data.length; j++) {
            if ((cat.char && data[j].char === cat.char) &&
                (cat.date && data[j].date.indexOf(cat.date) !== -1)) {
                num += data[j].number;
            }
        }
        return num;
    }
    
    var result = " / 07-09-2012 73 ABC / 11-09-2012 195 DEF/ 03-09-2012 95 / 04-09-2012 188 ABC / 31-10-2012 72 / 18-09-2012 205 / 26-09-2012 244 ABC / 14-09-2012 86 / 20-09-2012 92 DEF / 28-09-2012 97 / 01-09-2012 95 DEF/ 17-09-2012 95 / 17-09-2012 83 / 12-09-2012 95 / 18-09-2012 95 ABC / 18-09-2012 69 / 21-09-2012 95 / 21-09-2012 95 ABC/ 24-09-2012 144 / 28-09-2012 93 DEF";
    
    var total = search(result, {
        char: "ABC",
        date: "-09-2012"
    });
    
    console.log(total);
    
    功能搜索(结果,cat){
    var数据=[],
    行=结果。拆分(/\s*\/\s*/);
    对于(变量i=0;i