【发布时间】:2016-05-20 17:12:44
【问题描述】:
我正在尝试创建一个程序来根据我设置的规则检查文档的出现次数。在正则表达式的帮助下,我检查了一些字段,如果存在特定字段,我可以计算它出现的次数,或者我创建更深入的扫描。有点混乱,不知道具体怎么解释。
我正在检查文本文件,但为了降低复杂性,我将使用数组。
我有以下数组:
let strings = [
'COMPANY: NAME ID: 12',
'COMPANY: NAME ID: 12',
'COMPANY: NAME ID: 12',
'COMPANY: NAME2 ID: 10'
];
这是欲望输出:
[
{
"NAME": {
"12": 3
}
},
{
"NAME2": {
"10": 1
}
}
]
我的逻辑:
'use strict';
let patterns = [
{
'pattern': 'COMPANY:\\s*?([\\w]+)',
'modifier': ''
},
{
'pattern': 'ID:\\s*?([\\d]+)',
'modifier': ''
}
];
let strings = [
'COMPANY: NAME ID: 12',
'COMPANY: NAME ID: 12',
'COMPANY: NAME ID: 12',
'COMPANY: NAME2 ID: 10'
];
var SUPER = [];
var _data = {};
for (let string of strings) {
let i = 0;
let length = patterns.length
var root = _data;
for (i; i < length; i++) {
let item = patterns[i];
let regex = new RegExp(item.pattern, item.modifier);
let result = regex.exec(string);
if (i < patterns.length -1) {
root = root[result[1]] = {};
} else {
root = root[result[1]] = 1;
SUPER.push(_data);
_data = {};
}
}
}
console.log(JSON.stringify(SUPER, null ,2));
现在我有这个差距,我需要检查对象是否已经存在,如果是,我只增加最后一项。
有什么想法或建议吗??
谢谢。
【问题讨论】:
标签: javascript node.js