-1
私の目標は、特定のオブジェクトのすべてのイベントに同じ色を割り当てることです。私のオブジェクトは次のようになります。オブジェクトのキーに複数の値を追加するjs
var hConfig = [
{
label: "A",
criteria: ["Event0", "Event1"],
field: "evt"
},
{
label: "B",
criteria: ["Event2", "Event3"],
field: "evt"
},
{
label: "C",
criteria: ["Event4", "Event5", "Event6"],
field: "evt"
}
];
ラベルに属するすべての基準は同じ色でなければなりません。その機能は次のとおりです。
function highlightRegex (highlightConfig) {
// we will return an array of regex objects
var i;
var hl;
for (i = 0; i < highlightConfig.length; i++) {
hl = highlightConfig[i];
logger.info("hl object", hl);
hl.re = new RegExp(hl.criteria, "im");
}
}
function highlight (event, highlightConfig) {
// we will return the index if there is a match and -1 otherwise
var i;
var hl;
for (i = 0; i < highlightConfig.length; i++) {
hl = highlightConfig[i];
if (hl.re.test(event[hl.field])) {
return i;
}
}
return -1;
}
各データについて、イベント名が基準のものと一致すると、色が割り当てられます。
resultHighlight = highlight(value, hConfig);
value.evtColor = getColor(resultHighlight);
基準キーの値を1つだけ渡すと、これは完全に機能します。
criteria: "Event1"
しかし、私は基準キーで複数のイベント名を渡す必要があれば、それは破壊し、任意のイベント名に色を割り当てることはありません。どのようにして基準を値の配列として読み、それを正しく読み取るようにする必要がありますか?
これは問題でした。このソリューションは完全に機能しました。ありがとう:) – user2128