InDesign の JavaScript で配列に値が含まれているかどうか調べる
InDesign の JavaScript で配列に値が含まれているかどうか調べるのに、今までは「http://text.readalittle.net/article.php?id=135」(現在は存在しない)に記載されていた Array.contains
を実装したコードを使用してきたが他に一般的な方法は無いものかググった。
最近のJavaScript(ECMAScript)だと Array.includes
が使えるようだが、InDesignのJavaScriptのような古い環境だと使えない。
↑を参考に、ポリフィルを使ってみようかと思ったが、Object.defineProperty
をサポートしない環境では「non-enumerable化することができない」から使わないほうがいいとのこと。無理して古い環境で使うものではないようだ。
「non-enumerable化」ってどういうことかわからないが、列挙不可能化?とでも訳せばいいのか?
プロパティーの列挙で「for...in ループの対象」に含めないようにする処理のことかな。
Array.indexOf
を使用した方法もあるようだが、 Array.indexOf
も InDesign のJavaScript では使えない。
↑に掲載されているポリフィルには古い環境で使えない注記もなく、実際に使用した限りでは動作したので、これを使用してもいいかもしれない。
その他参考ページ: