potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。はてなブログ無料版なので記事の上の方はたぶん広告です。記事中にも広告挿入されるみたいです。

JavaScript (MDN)のArray反復メソッドとC# (.NET Core 3.1, Microsoft Docs)のLINQ

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() 要素のイテレーターを返す。

なお、JavaScriptArray.prototype.C#Array.を省略しています。

参考

Enumerable Class (System.Linq) | Microsoft Docs Array - JavaScript | MDN

2021/3/10:この記事は別のブログで投稿した記事を移動したものです。