シンドいながらもケツ弄り
「☑️input file menu」👈
code:js
_=>JSON.parse(_)
最初に入力JSONテキストをJSON.parse()でオブジェクト化
入力がJSONならこのへん自動化してもいいかなと思つたけど結局廃案
JSON以外も色々扱ひたい
関数ごとの出力欄でタイプがstringからobjectに変化したのを横目に次の関数へ 二つ目
code:js
_=>_.pages.map(p=>p.lines.map(l=>l.text))
必要な情報のあるプロパティだけ選択的にmap()
ページ単位で行ごとの文字列の配列の配列が取れたのを横目に次へ
三つ目
code:js
_=>_.flat()
ただの平滑化
jqだとここまで多分一発で簡潔に
code:jq
[.pages[].lines[].text]
特段の必要に迫られたらブラウザ版jqの導入も考慮
スマホでポチポチなので開発メンドさう
あとは一気にmap()なりfilter()なりreduce()なりして終了なのを横目に次へ
四つ目
code:js
_=>_.map(str=>str.match(
/\^\+\]/g
)).filter(v=>v).flat()
正規表現長くなる気がしたので改行で対応
filterとflatでヌル取りと均し
[ "[2020年]", "[にふ]", "[まとめ]", "[自分の…といつた具合にリンクつぽいものが取れてるのを横目に次へ
かういふコードスニペット的なのも混ざるのは未処理
五つ目
意外とケツ弄りタイムが延びてブラウザ落ちるのが怖いとき
💾押して出るオプションで「☑️cache functions」「to: 🔘localStorage」を選ぶ
code:js
_=>Array.from(new Set(_))
所謂unique関数がJSに無いのでその代替コードで重複除去 適用前と適用後の配列長が変化したか見たいなーてときの操作は割愛
六つ目
code:js
_=>_.filter(str=>str.match("シンドい"))
これでほぼ完了
code:js
[
]
🤔最初の“シンドいリスト”は要らんけど不安定な語尾には対応したい
code:js
_=>_.filter(str=>str.match(
/シンドい(ねん)?]$/ //やはりここは正規表現で
))
これで万全
折角なので最後に素のテキストへ整形
七つ目
code:js
_=>_.map(s=>s.replace(/\\[]/g,"")).join\n code:sindoi.txt
通知機能はシンドい
エゴサもシンドい
会話はシンドいねん
リアタイはシンドいねん
コラボはシンドいねん
キーボード用意するのもシンドいねん
喋るのシンドいねん
発話がシンドいねん
完了
出力の保存とか関数の保存とかは「☑️export」で色々と
さしあたりfunctionsを出力
code:json
[
"_=>JSON.parse(_)",
"_=>_.pages.map(p=>p.lines.map(l=>l.text))",
"_=>_.flat()",
"_=>_.map(str=>str.match(\n /\\^\\+\\]/g\n)).filter(v=>v).flat()",
"_=>Array.from(new Set(_))",
"_=>_.filter(str=>str.match(\n /シンドい(ねん)?]$/ //やはりここは正規表現で\n))",
"_=>_.map(s=>s.replace(/\\\\[]/g,\"\")).join\\n" ]