質問: 再帰を利用して、HTMLのテキスト(タグで仕切られた範囲)を全て”[num]”に切り替えるプログラムを作りたいのですが、 Javascriptが初めてなのもありまして、なかなか目標を達成することができません。 例えば、 ``` 入力 <a>はじめまして</a> <a>h_chicKerです</a> <a>よろしくお願いします。</a> => 出力 <a>NUM:1</a> <a>NUM:2</a> <a>NUM:3</a> ``` のようにしたいです。 変換するHTMLの例は https://teratail.com のトップページとします。 再帰の雛形は作ってみました。 ``` ``` なにかありましたら、随時補足させていただきます。 よろしくお願いします。
回答: プログラミング言語はロジックの表現/実現手段でしかないため、Javascript が初めてだからできない。というのは理由としては如何なものかと?ロジックの整理なり、組み立て能力なり、知識と活用方法が噛み合っていないだけでしょう。様々な言語で色んなプログラムを書くと良いですよ。 とは言え、再帰処理は慣れるまで難しい概念だと私は感じます。以下にひな形を書いていますので、参考にしてみてください。これがズバリの答えではありません。 ``` function _(e) { if (null == e) { // 引数が省略されている場合には document.body を無条件で指定する _(document.body); return; } if (0 < e.childNodes.length) { // childNodes を持つ場合は走査して再帰処理する for (var i=0; i