2017-04-19 12 views
0

Slack webhooksとwebtask.ioを利用しています。スラックの通知フィルタ(オンラインで見つかった一般的なスクリプトに基づいています)を作成しました。この時点で、文字列NON-SLA 。私はJSにとって全く新しいので、この点に着手するのはすべて試行錯誤です。スクリプトを調整して、任意の数の文字列を含むメッセージを除外したいと思いますが、私は主に言語に詳しいことがないためにロードブロッキングにいます。さまざまなソリューションを試してみると、オンラインで見つかりました。JSスラック通知フィルタ

function shouldNotify(data) { 
    return !data.text.includes('NON-SLA'); 
} 

これはshouldNotifyためTRUEを返し、スクリプトの残りの部分が指定したチャンネルにメッセージをプッシュ:

は、ここで1つだけの文字列の現在のフィルタです。

私はこれに似た何かをする方法を見つけることができませんでした:

return !data.text.includes('one','two','three'); 

は、配列を使用してに見えたが、それは全体として既存のスクリプトで作業してしまうように、私が見つけたものの何が見えました私は単に書き換えようとする時間がありません。これが最も効果的で適切な方法であると思われます。

フルスクリプトが表示されますhere

私はこれについての限られた知識を持っています。

TIA

+0

'' '' "、" two "、" three "を探していますか?(string =>" 1または2または3 ".includes(string))'? –

+0

ありがとう、私は言語に精通していないので、私は本当に知りません。私はちょうど試みました: リターン!data.text.includes ["110336"、 "103532"、 "103405"]いくつか(文字列=> "110336または103532または103405" .includes(文字列)) しかし、うまくいかない。 – Tronyx

+0

それは完璧に動作します!どうもありがとうございます!申し訳ありませんが、私はこれが機能的なコード/スクリプト用であることを認識していませんでした。私が得たdownvotesを説明する推測。 – Tronyx

答えて

0

あなたはArray.some()使用することができます。

function shouldNotify(data) { 
 
    const string = ["one", "two", "three"]; 
 
    return !string.some(string => data.text.includes(string)); 
 
} 
 

 
// Example: 
 
console.log(shouldNotify({text: "four apples"})); // true 
 
console.log(shouldNotify({text: "two oranges"})); // false

代わりArray.someに矢印機能を供給し、あなたが代わりにFunction.bindを利用することができ、書き込み:

return !string.some(String.includes.bind(string)); 
+0

提供された答えを使用しましたが、letを使用しようとしたときにwebtask.ioがエラーを投げたので、letをvarと置き換えなければなりませんでした(constも使用できません)。 ご協力いただきありがとうございます! – Tronyx

関連する問題