+ JavaScript & jQuery 質問用スレッド vol.7 + [無断転載禁止]©2ch.net (711レス)
1-

594: 581 2022/05/14(土)14:20 ID:??? AAS
>>579
関数型言語のElixir で、分かりやすいように、各処理を分けて作ってみた。
本当は、各処理をパイプでつなげていくもの

input_kw_list = [ id: "a", id: "o", id: "b", id: "a", id: "b", id: "x" ]

input_list = Keyword.values( input_kw_list ) # 値だけを抜き出す
IO.inspect input_list
#=> ["a", "o", "b", "a", "b", "x"]

grouped_map = Enum.frequencies( input_list ) # 出現回数でグループ化する
IO.inspect grouped_map
#=> %{"a" => 2, "b" => 2, "o" => 1, "x" => 1}

# 重複したものだけを抜き出す
duplicate_list = Enum.filter( grouped_map, fn { _key, val } -> val >= 2 end )
IO.inspect duplicate_list #=> [{"a", 2}, {"b", 2}]

# 重複した値だけを抜き出す
duplicate_values = Enum.map( duplicate_list, fn { key, _val } -> key end)
IO.inspect duplicate_values #=> ["a", "b"]

# 各要素が、重複した値のリストに含まれているものだけを抜き出す
results_kw_list = Enum.with_index( input_list )
|> Enum.filter( fn { elem, _idx } -> Enum.member?( duplicate_values, elem ) end )
IO.inspect results_kw_list
#=> [{"a", 0}, {"b", 2}, {"a", 3}, {"b", 4}]

results = Keyword.values( results_kw_list ) # インデックスだけを抜き出す
IO.inspect results #=> [0, 2, 3, 4]
1-
あと 117 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.004s