JavaScript (MDN web docs, 2020/01/14時点)のArrayの反復メソッドを基準としたC# (.NET Core 3.1)のLINQとの比較です。車輪の再発明に該当すると思いますが、JavaScriptの勉強のために。
JavaScript | C# | 概要 |
---|---|---|
entries(...) | Select((item, index) => ...)(直接はなし) | 要素のインデックスと値ペアのイテレーターを返す。 |
every(...) | All(item => ...) | 全ての要素が条件を満たすことを確認する。 |
filter(...) | Where(item => ) | 条件を満たす要素からなる新しい配列を作成する。 |
find(...) | First(item => ...) or FirstOrDefault(item => ...) | 条件を満たす最初の要素を検索して返す。 |
findIndex(...) | なし(Array.IndexOf(...)) | 条件を満たす最初の要素を検索してインデックスを返す。 |
forEach(...) | ForEach | 全ての要素に処理を実行する。 |
keys(...) | なし(System.Enumerable.Range(...)、System.Range) | 要素のインデックスのイテレーターを返す。 |
map(...) | Select(item => item) | 全ての要素に処理を実行してその結果を新しい配列として返す。注意:UInt8ArrayのようなTypedArrayは結果の型も元のTypedArrayと同一になる場合があります。その場合、変換は予期しない結果を返します。 |
reduce(...) | Aggregate((accumulate, source) => ...) | 左から右へ隣接する2要素に処理を行ってまとめ、最終結果を単一の値として返す。 |
reduceRight(...) | なし | 右から左へ隣接する2要素に処理を行ってまとめ、最終結果を単一の値として返す。 |
some(...) | Any(item => ...) | 条件を満たす要素の存在を確認する。 |
values(...) | AsEnumerable() | 要素のイテレーターを返す。 |
Array.prototype@@iterator | AsEnumerable() | 要素のイテレーターを返す。 |
なお、JavaScriptはArray.prototype.
、C#はArray.
を省略しています。
参考
Enumerable Class (System.Linq) | Microsoft Docs Array - JavaScript | MDN
2021/3/10:この記事は別のブログで投稿した記事を移動したものです。