元のCSVの最後の行が改行されてないと追記の1個目が最後の行の末に連結される。これ自動的に解消したいな。改行忘れありそうだし。元ファイルを手書きではなくRubyで作れば問題なさそうだな。プログラムでいじったら、プログラム以外でいじらないこと。プログラムで作成したものを手書きで(手動で)いじるとなんていうのかな、なにかしらファイルが汚染されるみたいな感じだ。【作成】書き込みモードでオープン。値はすべて上書きされる。endendそうですね!「<<」か「puts」でRubyから作れば、自動的に一番下が改行されます。このドキュメントではあえて調べないことが前提でしたが、CSVライブラリについてひとつだけ調べました。いつか、後日まとめてください。true」を付けるとcsvfileは2次元配列ではない。範囲オブジェクトは「範囲オブジェクト」です。(1..10).classはRangeオブジェクトです。配列にするにはto_aをつけます。「!」がなくても破壊的なメソッドがある。気になるのであれば「p、puts」で確認する。あと「破壊」とか言ってるけど、OSの元データファイルまで壊すわけじゃないので全然怖くないし、何度でもやり直せる。user2値が2つないとppが発動しない!?なんだそれ笑!そういうものか...。必要なメソッドとは(For初心者)覚えると得なメソッドがある。いまの時点で「これ何に使うんだ?」というメソッドもある。selectメソッドがいい例だ。これは覚えたほうがいい。記述を短縮できて簡潔だからだ。いうメソッドは積極的に覚えたほうがいい。使い方が少しだけ複雑なら、学習コストとストレスコスト、再現性コストとかいろいろな要素を天秤にかける。いま自分が知っているメソッドで応用を効かせて、やりたいことができないかを考える。「畳み込み処理」とは?複数配列の一括処理のこと?縦横計算?zipメソッドのこと?「畳み込み処理」っていう言葉があるらしい。スキルの習得について覚えると速いし、早い!しかもそれは直接、スキルと呼べる。プログラミングはパソコンだけあればいつでもどこでも何でもできるものである。いまのご時世とてもいいスキルだ。記憶力というのは人それぞれで、少し時間が経つと忘れていくものだ。再度使う場合にまた同じ学習時間を要するには人生が勿体無さすぎる。覚えなくても基礎とアクセスする術を知っていれば基本的に問題はない。「コトノハ」とはよく言ったもので、ある事に対して、派生、連鎖させて、「何を?」「どのくらい?」「どんなふうに?」話せるかが重要である。トリガーワードに対しての見方、側面、アプローチの方法や方向も人それぞれである。ツリー構造をイメージしたり、ノードとリンクから成るネットワーク図をイメージしたり、マジカルバナナのように言葉の連鎖をイメージしたりするなど、どんどんつながっていくと思う。調べて、何を調べて、何を言っているか、何が大事かがわかるようになればいい。簡単に言うとインテリジェンス。情報の扱い型がとても大事だ。把握、信用、まとめ、整理、本質などそういう扱い方や捉え方。記憶力はあればあるほどいい。検索システム等へのアクセスまたはその行為は記憶より遅く、セキュリティ上弱い。それは単に知識と一緒だ。「Xラーメン店」の位置を調べるより、知っていれば「早い」し、「速い」。#値へのアクセスは後置シンボルが使えない。ちなみにこれが万能メソッド[]=""多次元配列について多次元とは言うても2次元が基本です。多くて3階層の入れ子までが私の限界です悲笑。2次元配列はエクセルのようなテーブル表をイメージすることができます。外部サービスのAPIを利用して外部からデータをとってくると、入れ子がすごいときがあります。"行#{row_num}、列#{col_num}、値は#{value}です。1}、値は#{value}です。endendもし上記のような使い方をするなら、丸暗記のほうが幸せになれると思います。「each_with_indexを2回使うんだな!」って。「ブロックパラメーターを複数取る」でもいいです。上記の「each_with_index」の2回使うより、ブロックパラメーターを複数取るほうが幸せになれると思います。#「each_with_index」と複数ブロックパラメーターは同時に使えるか?#使えました!これ結構用途広がる。「.length」→「必ずしも一緒ではない。」ということを知っておく。知りたかったら調べる。いまは遠慮しておきます。String」https://docs.ruby-lang.org/ja/latest/method/String/i/lines.html文字列を改行文字で配列にする?...あれ?別のメソッドでなかった?splitのこと?splitは改行文字で配列化するけど、半角空白文字でも区切るので、少し使い方が違う。}------------------------------------------------範囲オブジェクトは数字以外でも使えます。DateTime.now...飛ばします。使う時に下記の用語・オブジェクトを検索して下さい。xxxend「f」はfileのf。※Windowsのメモ帳で作成保存したものは「BOM」が付くので正しい情報が得られない可能性があります。「BOM」について不確定な知識ですがブログに書きました。省略」https://uxmilk.jp/22615参考書にはopenだけで書いていましたが、「File.open」ってのもあります。自分は慣れで「File.open」って書きます。あと「わかりやすさ性」も向上する気がします。最初の新規作成はモードが”w”でも”a”でもどっちでもいいです。同じファイル名に”w”を使ってputsを行うと全部上書きされます。あとで調べたら”b”モードってのもあるらしい。読込ブロックを使うと自動的に閉じてもくれるので、この書き方を鉄板にしましょう。逆にブロックを使わないやり方がわからない。ブロックのendが「閉じてます!」って感じするのでこれでいいと思います。「”r”読込モードで、f.readはStringを返し、f.readlinesはArrayを返す。↑ここ大事ね!というか基本。「レシーバー、メソッド、リターン」でも、とりあえず「read」だけ覚えましょう。#Array#【gets】#getsだけだと1行しか読み込まない。"こんばんは\n"]ちなみに...。trueを付けたら、改行文字を消せました。“fileutils”」使う時調べる!ディレクトリ・フォルダこれも調べる。「DirとPathname」(Pathnameはあまり使わないかも。昔からあるWebrick。Rails5からPumaサーバー。調べたらフリーソフトで簡単なWebサーバー的なものがあります。目的は、ローカルで簡易システムを作成し、作業できればいいよね!って思いました。“open-uri”」Web上のhttpファイルを開けるように標準のopenメソッドを拡張します。「プログラムが思った通りに動かない?いや、プログラムは書いたとおりに動いているだけだ。」ブラウザ自動化「Selenium」Selenium一択!Seleniumを2日間集中し、あるプログラムを完成させて、数日手を加えないと何をやったかもう忘れている...。よって、わかりやすく、はいりやすく、より直感的に、受け入れやすく、情報をまとめる必要があります。ミニ言語と言われている所以がだんだんわかってきた。正規表現を勉強するときに自然とこっちも学ぶと思う。"hfr").to_a.map(&:upcase)なぜこうなるか理解はしてません。procとかって言葉出た時点で拒絶反応出ます。複雑なことをしなけれ簡単に書けるということ。ruby」https://qiita.com/k-penguin-sato/items/420d7487b28b5d58cac4まとめ(随時追加)このドキュメントを繰り返し読む。小さくできるなら努力する。簡易版を作ってもいい。制御文を使えるようになる。演算子も少しずつ覚える。亡くなった(2020年2月11日)。彼の言葉にはすべてに通ずる基本が詰まっているような気がする。その一つに「基礎が大事、みんなわかりきっていることだと思っているから、めんどくさがってやろうとしない。勝手に厳選した60個のメソッドを「String専門のメソッド13個」と「それ以外の47個」に勝手に分類しました。「それ以外の47個」は14個と33個に分かれます。自分だけが覚えやすいようにゴロや形を作りました。今後、増減はあると思いますが、1年間はこの60個と増えるものは候補としてストックして見えるようにしておきたいと思います。呪文:「14個共通メソッド・確認メソッド系」2×4,3,1,1,1。=mapeacheach_with_indexeach_lineeach_chareach_slicewith_indexpushpopunshiftshiftinsertslicedeletedelete_atscangrepselect60メソッドstripString.stripは文字列先尾両端の空白文字やメタ文字を削除する(半角文字のみ)。対象文字(空白、メタ文字)であっても、それが文字列中にあれば削除しない。文頭だけ削除したいのであればlstrip、文末だけならrstrip。lは左=文頭で、rは右=文末。目に見える文字列だけが欲しいなどサニタイズをするときによく使う。60メソッド目次へ戻るchompString.chompは「末尾の改行文字」を削除する。chopと違い、末尾が改行文字では無いなら何もしない。"helllo"60メソッド目次へ戻るencodeString.encodeは引数に文字コードを指定して、その指定した文字コードへの変換を試みる。変換先だけではなく、変換元も明記することができる。変換エラーが出ないようrepliceを覚えることおすすめする。スクレイピングなどで自分の環境と違うコードを取得する際に使用する。<Encoding:Windows-31J>60メソッド目次へ戻るunicode_normalize(:nfkc)String.unicode_normalize(:nfkc)は日本語の独特な癖を一括で処理する。人によって入力の違う全角半角カタカナと全角半角英数字。このメソッドは英数字はすべて半角に変換し、カナはすべて全角に変換する。“nkf”」というものもあります。「unicode_normalize(:nfkc)」でサクッと天下統一しちゃいましょう。"MILKチョコは120円です"60メソッド目次へ戻るgsubString.gsubは第一引数には検索する正規表現か文字列を指定し、第二引数には置換したい文字列を指定します。引数の検索値に当てはまるものを探し、第二引数の置換文字で当てはまるものすべて置換します。引数は正規表現と文字列が使えます。パンrld"60メソッド目次へ戻るsubString.subは使用方法がgsubと同様で、subとgsubの違いは検索値で複数当てはまった場合、最初のひとつだけを置換します。60メソッド目次へ戻るcharsString.charsは1文字ごとで区切った配列を返します。"r"]60メソッド目次へ戻るlinesString.linesは改行文字で区切った配列を返します。"xyz\n"]60メソッド目次へ戻るsplitString.splitは配列を返します。引数に指定した文字で分割し配列を作成します。引数に文字を指定しない場合は、半角空白文字で分割し、配列を作成する。スペース」であり、指定なしだと\nや\tは分割文字として使用されます。引数には文字列または正規表現が使用できます。"ね"]60メソッド目次へ戻るupcaseString.upcaseはすべて大文字にする。"HELLO"60メソッド目次へ戻るdowncaseString.downcaseはすべて小文字にする。"hello"60メソッド目次へ戻るcapitalizeString.capitalizeは先頭を大文字にする。"Hello"60メソッド目次へ戻るswapcaseString.swapcaseはすべての文字列の大文字小文字を入れ替える。"HEllO"60メソッド目次へ戻るempty?String.empty?はそのまま「Stringはカラですか?」と訳すことができ、レシーバーの値が空かどうかを判定し、結果をtrueかfalseで返します。falseArray.empty?で配列データの有無を確認する。5].empty?60メソッド目次へ戻るnil?String.nil?は「オブジェクト自体が存在してますか?」と問い合わせるメソッド。結果をtrueかfalseで返します。false60メソッド目次へ戻るrespond_to?String.respond_to?(“メソッド名”)はレシーバーに対して引数のメソッド名が使えるかどうかをtrueかfalseで返します。検討のつくメソッド名が使えるかどうか確認するときに意外と使えます。trueArray.respond_to?("メソッド")で引数に指定したメソッドが使えるかどうか確認する。"".respond_to?("count")60メソッド目次へ戻るmethodsString.methodsはレシーバーに対して実行できるメソッド一覧を表示します。[たくさんある]Array.methodsはレシーバーに対して使用できるメソッドの一覧を表示する。[].methods#たくさん表示される60メソッド目次へ戻るkey?Hash.key?(キー)は引数に指定したキーをデータ内に持つかどうか調べ、true・falseで返す。hash.key?(:one)falsetrue60メソッド目次へ戻るvalue?Hash.value?(バリュー)は引数に指定したバリューをデータ内に持つかどうか調べ、true・falseで返す。hash.value?(2)falsefalsetrue60メソッド目次へ戻るeven?数字.even?偶数かどうかをtureかfalseで返します。60メソッド目次へ戻るodd?数字.odd?奇数かどうかをtureかfalseで返します。「オッドアイ」のodd。60メソッド目次へ戻るsizeString.sizeは文字数を返します。5Array.sizeは配列に納められているデータ数を返す。5].size#560メソッド目次へ戻るlengthString.lengthは文字数を返します。5Array.lengthは配列に納められているデータ数を返す。5].length#560メソッド目次へ戻るcountArray.countは配列数を返します。4Array.countは配列に納められているデータ数を返す。Stringにcountは使えない。5].count#560メソッド目次へ戻るclassString.classはStringやArray、Hashなどの所属クラス名、所属オブジェクト名を返します。デバッグによく使います。StringArray.classは所属するオブジェクト名を返す。Arrayに対して.classを実行すれば当然Arrayが返るが、Arrayかどうか不明の場合、役に立つメソッドだ。オブジェクト.class60メソッド目次へ戻るencodingString.encodingはShift_JISやEUC-JP、UTF-8などの文字コードを返します。<Encoding:UTF-8>60メソッド目次へ戻るmatchString.matchは引数に正規表現か文字列をとり、当てはまればMathDateオブジェクトをとり、当てはまらなければnilを返す。"l">60メソッド目次へ戻るuniqArray.uniqは配列の中で重複しているデータがある場合、重複が削除され、1つだけ残る。“”万能メソッド[]=””特に引数の理解と暗記が必要である。文字列を抜き出し機能もあれば、削除、書き換える機能もある。文字列Stringを配列として見立て、[インデックス番号]でアクセスする。引数の書き方は5つあり、他のメソッドでも応用できる書き方なので覚えたほうがいい。部分抜き出しや削除ではsliceとうメソッドもある。意外とArrayやHashにも使用できたりする。5つもあると言ったが、4つは意外と直感的である。頭の中で考えないといけないのが、3番目の「開始位置からいくつ」というものだ。別の変数xに1文字抽出保存できる"「3.開始位置から何番目」について他の4つと違い直感的ではないと思います。「0と1とそれ以外」の3つの使い方を覚えればいい感じになると思います。"インデックス番号2の文字は「T」です。自分を含めて自分以降7つを示す"「0」は自分の前を。「それ以外」は自分を含めて後ろいくつか。60メソッド目次へ戻るminArray.minは配列の中の最小値を返す。160メソッド目次へ戻るmaxArray.maxは配列の中の最大値を返す。360メソッド目次へ戻るminmaxArray.minmaxは配列の中の最小値、最大値を次のように配列にまとめて、配列で返す。3]60メソッド目次へ戻るsumArray.sumは配列データがすうじに限り合計を返す。2160メソッド目次へ戻るshuffleArray.shuffleは配列の並び順をシャッフルする。変わる60メソッド目次へ戻るsampleArray.sampleは配列からデータを適当に抽出する。array.sampleとarray.sample(1)は返り値のクラスが変わります。引数に数字を入れて抽出する数を指定する。"orenge"]60メソッド目次へ戻るjoin(ついでにinspectも)Array.joinはinspectとは違い、値だけつなげて文字列化する。Array.join(“,”)のように引数を指定すると、文字をつなげるときに文字と文字の間に区切り文字として使うことができます。ちなみにArray.join(“”)は引数なしと同じ意味です。"apple;banana;melon;greap;orenge"60メソッド目次へ戻るzipArray.zipは転置配列を返します。転置配列?という言葉が聞き慣れませんが、戻り値を見ると考えうる利用方法の一つとして2つの配列の比較することに使用できます。一度使ったことがあります。zipはそれで返ってきた配列をeachで回すことで同時(比較)処理として扱うことができます。要素の数が合わなければ足りない部分はnilで埋められます。下記の例では「1と9を同時に取得してるので、同じ処理を2つにしたり、比較したりできる」ということです。8]]60メソッド目次へ戻るmergeHash.mergeは2つのハッシュを合体し、かつ重複のないハッシュを返す。重複した時は追加ハッシュが優先され、元ハッシュは上書きされます。3つの集合と配列の足し算を1つ紹介する。積集合[]&[]積集合は「どっちにもあるもの」を集めた配列を返す。和集合[]|[]和集合は「どっちかにひとつだけでもあるもの」を集めた配列を返す。差集合[]-[]差集合は「引いたもの」の配列を返す。[]「+」と「.concatメソッド」はどちらも結果は同じで、シンプルにつなげることができる。7]60メソッド目次へ戻るmapArray.mapは式全体で配列を返します。}」これ自体がmapで作成した配列を示し、保存しなければ戻り値を返した後に消え、別の変数を割り当てれば作成した配列を保存することができる。map!であれば元配列を新配列(破壊)に変えることができます。簡単の処理なら「do~end」より「{}」のほうがすっきりする。10]60メソッド目次へ戻るeachArray.eachは要素を1つずつ処理するように回す。使うので自然に覚えると思います。ネストされた2次元配列の場合、ブロックパラメーターに複数持たせると変数を複数利用できるようになる。これはかなり使い勝手がいいです。この辺は慣れが必要です。基本に従って声に出してゆっくり書いていけばうまくいくと思います。2次元配列でブロックパラメーターがひとつでも、配列アクセス[i]などで値を取り出すことができます。三重ネストについて、下記のように()を使うことで一度のeachで三重くらいまで値を取り出すことができます。"#{l}と#{m}と#{n}"endHash.eachはデータペアごとに処理を回す。ブロックパラメーターの順番は守る。value|で取っておけば問題ない。一方を使わなくてもこのように取っておけば問題が少ない。ちなみにブロックパラメーターを1つにすると配列で変数に格納する。"キーは#{key}で、バリューは#{value}です。2]60メソッド目次へ戻るeach_with_indexArray.each_with_indexはeachで回す際に値と同時にインデックス番号も取得することができる。ブロックパラメータを次のように複数指定する。i|の順番は決まっている。iはよく数字の変数で使われます。"#{ele}と#{i}"end60メソッド目次へ戻るeach_lineString.each_lineは複数行の文字列を配列化せずに1行ずつ処理を回すことができる。3end60メソッド目次へ戻るeach_charString.each_charは文字列を配列化せずに1文字ずつ処理を回す。3end60メソッド目次へ戻るeach_sliceArray.each_sliceはeachで回す際に何個ずつ取り出してブロックパラメーターに格納するかを決めれる。普通のeachは要素をひとつずつ取り出すが、下記の場合、一度に2要素を取得してそれらを配列にまとめて返す。eleend60メソッド目次へ戻る.with_indexString.each_line.with_indexまたはString.each_char.with_indexは回す際にインデックスが必要な場合にこれを使う。ブロックパラメーターの2つ目がindexであること。「.with_index」メソッドはインデックス開始を任意の数字から始めることができる。"行#{index}:#{line}"end60メソッド目次へ戻るpushArray.push(“値”)で配列の最後尾に”値”を追加する。“値”)というようにコンマで区切ると複数のデータを最後尾に追加できる。「<<」にも「push」と同じ効果がある。"y"60メソッド目次へ戻るpopArray.popは配列の最後尾のデータを削除する。引数に数字を指定すると末尾から指定した数だけ削除する。array.pop(3)。pushとpopをペアで覚えるとよい。#[1]60メソッド目次へ戻るunshiftArray.unshiftは配列の先頭0番目にデータを追加する。コンマ区切りで複数データを追加できます。3]60メソッド目次へ戻るshiftArray.shiftは配列の先頭データを削除する。引数に数字を指定すると先頭から指定した数だけ削除する。array.shift(3)。unshiftとshiftをペアで覚えるとよい。“挿入データ”)で「インデックス番号の『前に』『挿入データ』を入れる」ということになる。“inject”でも同じ効果がある。“inject”)とすればpushと同じ効果になる。4]String.insertも紹介しておく。動き、使い方はArrayと変わらない。指定したインデックス番号の文字の前に指定した文字を挿入します。引数にインデックス番号を指定し、第二引数に挿入したい文字列を指定する。"zzz")#"hzzzello"60メソッド目次へ戻るsliceString.sliceは引数に指定した文字列または正規表現に当てはまったものを削除する。これはArrayにも使える。戻り値を別の変数に保存すれば抽出として使用できる。部分削除したいならslice!で元データを破壊し、部分抽出をしたいならsliceといったところでしょうか。引数の指定方法は5つ。これは万能メソッドのところと共通するので、引数の5つの指定方法を覚えておこう。文字列指定"60メソッド目次へ戻るdeleteArray.delete(“データを指定”)として、引数には既知のデータを指定する。よって何が入っているか知っていないと使えない。配列に同じデータがあったら、すべて消える。"e"]60メソッド目次へ戻るdelete_atArray.delete_at(インデックス番号)は引数で指定したインデックス番号のデータを削除する。"a"]60メソッド目次へ戻るscanString.scanは配列を返します。String.scan(/正規表現/)またはString.scan(“文字列”)と記述し、レシーバー内を引数の正規表現または文字列で走査し、マッチした場合は引数に指定した正規表現または文字列のみの配列を返します。要するに複数マッチした場合は同じ要素がマッチした数、作成されます。"ヒット数は#{"さんまのまんま".scan(/ま/).count}です。"60メソッド目次へ戻るgrepArray.grepは引数のパターンマッチを要素1つずつ判定し、当てはまったもの取り出し、それらで集めた配列を返します。動きがscanに近い。selectやrejectのようなブロックは不要である。grep(/正規表現/)、grep(オブジェクト)を入れる。grepによるパターンマッチは「===」で行われる。「.grep」ひとつだけで、用途限定的ですが、mapやselect、scanのような動きをする。再度、連絡ですが、引数は正規表現かオブジェクトのみで文字列は取れません。私みたいなエントリー者はシンプルな使い方を好む(私だけ!?)ので、おそらく1番最初の例のような「.grep(/文字列/)」になると思います。3].grep(1..2)60メソッド目次へ戻るselectArray.selectは配列から条件式に合ったものだけを集めた配列を返します。}」というこれ自体がselectで作成した配列示します(?)。保存しなければすぐに消えますが、select!として破壊的にすると元配列を新配列(破壊)に変えることができます。selectを使わない場合は、「新ハッシュとeachとifと<<」で同じことができます。arrayHash.selectの使い方は配列のselectと同様でなので直感的であると思われる。目次に戻るsortreversecenterrjustljust「+,<<」trchop=~indexmatch?clearinspectflattenfirstlasteach_indexrejectfindpartitiontakedropall?any?each_keyeach_valuekeysvaluessortArray.sortはデータの順番を自動的に昇順にする。降順にする場合は一度昇順に整えてから、反転させる。"apple"]reverseString.reverseは文字列を後ろから読み、それを返す。"hello".reverse#"olleh"Array.reverseはデータの順番を逆にする。降順というわけではない。最初の並びをただ逆にするだけ。"apple"]centerString.centerは文字列の幅を指定しておき中央寄せを行う。第二引数に指定がなければ空白部分をスペースで埋める。第一引数の数字が文字数より小さいと何も起こらない。"☆")#"☆☆☆hello☆☆☆☆"rjustString.rjustの使用方法はcenterと同様で、rは右という意味で右寄せになる。ljustString.ljustの使用方法はcenterと同様で、lは左という意味で左寄せになる。squeezeString.squeezeは「連続して重複する文字」と「連続して重複するスペース、改行文字」を1つにする。それは「まとめる」という言い方もできれば、削除という言い方もできる。引数にまとめる文字を指定することができる。")#"hello"「+,<<」String「+,<<」は文字列を連結する。「+」はシンプルに連結し、「<<」は元データを破壊して連結する。String3trString.trはほとんど使わない。よって、しばらくして使わない場合は自分のメソッドリストから削除する。gsubにほぼ似ている?ただし引数は文字列だけか?置換、反転(それ以外)、削除、範囲指定などの指定方法があるようです。#mをAに置換"chopString.chopは文字列の末尾の文字を削除します。改行文字とか関係ない。(/正規表現/)は文字列と正規表現を比較して、trueならマッチ開始位置を表示、falseならnilを返す。(/Z/)indexString.indexは引数に探索文字列を文字列か正規表現で指定し、当てはまった最初の開始位置を返す。第二引数に探索開始場所(インデックス番号)を指定できる。20)match?String.match?は引数に指定した文字列か正規表現の有無を確認し、trueかfalseで返す。match?の引数は正規表現、include?の引数は文字列。str.include?("ZZZ")clearArray.clearは空っぽ[]になるだけで、配列自体は無くならない。array.clear#[]Hash.clearはデータを空にする。空っぽ{}にはなるがハッシュ自体はなくならない。hash#{}inspectArray.inspectは文字通り記号も全部ほんとにそのまま文字列にする。to_sにも同じ効果がある。4]"flattenArray.flattenはイメージとしてはネストされている配列のデータを一度全部取ってネストのない1次配列を返す。ネスト[]を取っ払って値だけで1次配列を返す。ネストを平坦化する意味とは?引数なしだとすべて平坦化します。「すべて平坦化します。」っていう意味も何となく使っています悲。全ての値だけを取り出して、1次元配列にします。引数には再帰数の階層を指定することができる。nest.flatten(3)firstArray.firstは配列の先頭データを返す。array.first#"apple"lastArray.lastは配列の最後のデータを返す。array.last#"orenge"each_indexArray.each_indexは配列の値はいらないけど、インデックス番号が欲しい時に使い、インデックス番号だけの配列を返す。インデックス番号があればarray[i]とアクセスが可能なのでこのメソッドの使い道がいまは不明である。array[i]endrejectArray.rejectの効果はselectメソッドの反対で、条件式に合わないものを集めて配列を返します。ifとunlessのような関係です。9]というように奇数だけ揃うfindArray.findは配列から条件を満たす「最初の」要素を返す。[falesグループ]]というネスト配列を返す。9]]takeArray.takeは引数に指定した数字をnとして、配列の先頭からn個だけの配列を返す。"banana"]dropArray.dropは引数に指定した数字をnとして、配列の先頭からn個削除した配列を返す。"orenge"]all?Array.all?はブロックを利用し、配列のすべてのデータが条件式に合った場合trueを返す。resultany?Array.any?はブロックを利用し、配列のデータのうち1つでもtrueがあればtrueを返す。resulteach_keyHash.each_keyはkeyだけを回す。keyendeach_valueHash.each_valueはvalueだけを回す。valueendkeysHash.keysはキーだけの配列を作成し、返す。:hobby]valuesHash.valuesはバリューだけの配列を作成し、返す。目次に戻るflattenとinpectが検索で使えるflattenとinpectの使い方がひとつわかった。「ある文字」が引っ掛かるかどうかの検索のときに使えるのでは?flattenすれば入れ子の階層も全部フラットになる。データ構造はバラバラになるけど、とにかくデータを探すときに役に立つかも。inspectはそれをStringにして、探索メソッドを使いやすくする。スクレイピングとsqueezesqueezeはスクレイピングしたときに謎のメタ文字や空白文字で文字が離れ離れになっているとき、見た目の簡素化するのに使える。フリーソフト「clibor」との合わせ技reversereverseはクリップボードにコピーした順番を表示順に直すときに使える。フィッシングサイトとは、「正規のサイトを装い、ユーザーに情報入力を求めるサイト」です。要はフィッシングサイトとは偽サイトです。ネットバン...投稿記事Windowsでバッチファイルをタスクバーにピン留めして簡単に実行する方法Windowsでは直接バッチファイル(batfile.bat)をタスクバーにピン留めすることはできませんが、ショートカットを作成し、それをタスクバーにピン留めすることで同様の機能を実現できます。以下に手順を示します。DISMとsfcコマンドの使い方Windowsの動作に不具合を感じたとき、手軽に試せる修復方法として、Windows標準のDISMコマンドとsfcコマンドがあります。これらのツールを使用することで、システムの問題を診断し、修復することができます。男性のトイレと自動化と電子決済、機械化のすすめ結論は、男性のほとんどが...経験値として8割の人が手を洗わずにトイレを後にします。それで仕事や日常生活に戻っていくわけですね。いって、病気にもならないし、コロナ以前でも通常の免疫で問題ないわけです。そもそも、トイレの後に本人自体も具...投稿記事クレジットカードは危険ではなくシンプルに便利であるたまたま、ほんとうにたまたま昼休みに以下の記事が目に入ってしまった。情報教育が将来絶対必要だと思っている自分にとって素通りできませんでした。小さなことからぐるぐる回すこと。あと炎上の対応方法というかスタンスについて。「こんな記事なんて、自分なんて...」大丈夫です!そんなネガティブな気持ちは麻痺していきますから。いいことですが注意も必要です。あなたの記事がどうなるかはわかりません。最後はリスペクトで終わりましょうまたはトータ...スポンサーリンクホーム投稿記事いつのまにかWindows「同期センター」が有効になっていて、NASのフォルダが表示されない。OKE2GOU.メニューRubyおすすめの本ホーム検索トップサイドバ。