0

XPage 内の配列をサーバーサイド Javascript でフィルタリングしたいと考えています。残念ながら、次のエラーが表示されます。

タイプ「配列 [JavaScript オブジェクト]」のオブジェクトでメソッド「filter(Function)」を呼び出すときにエラーが発生しました

次のような文字列の配列があります["elem1","elem2","elem3"]

この関数を次のように呼び出します。

list.filter(function(){

});

このエラーが発生する理由はありますか? この関数はssjsにも存在しますか?

Xpages/Lotus Notes が Rhino をバックグラウンドで実行することが明らかでないため、この質問は重複していません。

4

2 に答える 2

1

使用しているサーバー側 JavaScript 環境が ES5 機能 (2009 年 12 月の第 5 版仕様の機能) をサポートしていないようです。

それと配列に追加された他のものにポリフィルを使用できます。MDNを参照てください。スルー配列が影響を受けます。Array.prototypefor-in

于 2016-11-04T07:58:48.773 に答える
0

XPages の背後には Rhino があります。そして、この SO トピック No Array.filter() in Rhino? 言う、それは時代遅れです。

編集: いいえ、そうではありません。何年も前に、私はそれについてどこかで読みました。今ではそうではなかったようです。Dan Sickles のコメント (Philippe Riand を引用?) による:

サーバー jvm 上で実行され、アプリケーション言語として JavaScript を使用します。ライセンス上の理由から、IBM は Rhino を使用する代わりに独自の jvm JavaScript エンジンを作成しました。Rhino は Java 6 で出荷されているため、Designer 8.5 (またはそれ以降) で出荷できるはずです。ライセンスの問題は、@Formulas や型宣言などの拡張機能に関連していた可能性があります。クラス、モジュール/名前空間、および型宣言は javascript 2 で提供され、Google でさえ Rhino での実装を支援しています。非標準の JavaScript エンジンが Domino の最もクールな Web 開発テクノロジの基盤になっているのを見たくありません。

Rhino といえば、「XPages ほど確実に 8.5 にない最も重要な新機能」は、クライアントで Rhino およびその他の jvm スクリプト言語を使用します。これが製品に組み込まれた場合、今から 2 年後にはほとんどの新しいノーツ アプリケーションがロータス スクリプトでも Java でも作成されなくなります。私はそれを残します。

実際、XPages で Rhino を使用する方法に関するトピックはほとんどないため、最新の Rhino バージョンでコードが機能します。とにかく、私のアドバイスは、Java 呼び出しを使用することです。

于 2016-11-04T08:02:44.390 に答える