0
私が設定したルールに基づいてドキュメントの出現数をチェックするプログラムを作成しようとしています。正規表現の助けを借りて、私はいくつかのフィールドをチェックし、特定のフィールドが存在する場合、そのフィールドの出現数を数えるか、より深いスキャンを作成します。それはちょっと混乱していて、私は説明する方法を正確には知らない。同じインターフェイスではあるが同じではないオブジェクトを合計する
テキストファイルをチェックしていますが、複雑さを軽減するために、配列を使用します。
私は次の配列があります。
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) {
\t let i = 0;
\t 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) {
\t root = root[result[1]] = {};
} else {
root = root[result[1]] = 1;
SUPER.push(_data);
_data = {};
}
}
}
console.log(JSON.stringify(SUPER, null ,2));
今、私はオブジェクトがすでに存在するかどうかを確認する必要があるこのギャップがあります。もしそうなら、私は最後のアイテムを増やします。
アイデアや提案はありますか?
ありがとうございました。
機能的な例を提供できますか?これは実際には機能していません。 –