-1

javascript の inArray 実装を思いついたところですが、正常に動作しています。奇妙ですが短いので、何か問題があるような気がしますが、それが何であるかはわかりません。

Array.prototype.inArray = function (itm) {
  return this.join("|").match( new RegExp('\\b'+itm+'\\b','ig')  );
}

更新: これは、inArray 機能の一般的な実装であると想定されています。ループを実行するか、正規表現を作成するか、どちらがより高価かはわかりません

4

2 に答える 2

0

underscore.jsintersection()メソッドを使用して、配列に要素または一連の要素が含まれているかどうかを確認します。

if(_.intersection(yourArray, [item]).length){
    //do stuff
}

複数のアイテムを配列にプッシュすることで、それらをチェックすることもできます。また、あらゆるタイプのオブジェクトをカバーします

于 2012-10-17T21:08:41.620 に答える
0

実装要件が何であるかはわかりませんが、次の点に注意してください。

  • 実際のメンバーではなく、配列メンバーの文字列化されたバージョンと一致します

  • これ\\bにより、句読点を含む単語の区切りが許可され、誤検知が発生します。

  • 配列内の単一の単語エントリにのみ役立ちます。そうしないと、誤検知が発生する可能性があります

  • nullor と「一致」の配列を返します。それがあなたが望むものかどうかはわかりません。

これらは表面をなぞっただけだと確信しています。

非常に狭い機能を実装している場合は機能しますが、一般的な使用には十分ではありません。

于 2012-10-17T21:03:29.547 に答える