【小技】JavaScript Array.from()関数で超便利にDOM操作
2018年7月23日
ホワイトボードの末ちゃんこと末吉です。
さてさて、前回の記事「【小技】JavaScriptでgetElementsByClassで要素を取得したときに配列に格納する」ですが、
誤りがありました。大変失礼しました。
× getElementsByClass
○ getElementsByClassName
ではお詫びもかねて、先の記事の続き(?)をしたいと思います。
今日ご紹介するのは Array.from() 関数になります。
Array.from()関数
Array.from関数についての詳しい解説をしよう。。。と思ったのですが、
MDNを見ていただいたほうが間違いがないので、MDNにお任せします(笑)
ES6ゆえの注意
ただしご注意ください、この関数はES6になるため古いIEなどでは動作しません。
MDNのページの実装状況にもありますが、Edgeもサポートしていません。
IE、Edgeをサポートしないでよい環境で使うか、Babelなどを通して使うようにしてください。
どうやって使う?
さて基本的な使い方はMDNの例にありますが、
ウェブサイトを弄っていて特に使う場面が多いのが、やはりDOMの操作かと思います。
例えば、<select>に対してJavaScriptで取得してきたデータを元に<option>をセットしたい場合、
Arrow関数とfilter関数を使うと1行で済んでしまいます。
<select name="test"> <option value="alpha">Alpha</option> <option value="bravo">Bravo</option> <option value="charley">Charley</option> </select>
const targetElement = document.querySelector('select[name="test"]').options; const targetValue = 'bravo'; Array.from(targetElement).filter(ele => ele.value === targetValue)[0].selected = true;
どうです?こんなに簡単です。
是非実践でも使ってみてください!
まとめ
日々どんどん便利になってきているJavaScriptですが、webpackなどを使うと特に気になるファイルの誇大化。
もちろんoptimization.splitChunksを使って分割したりもしていますが、何より無駄なライブラリを使用しないことが一番です。
ですが、開発コストにあわせてライブラリを使用するというのも・・・。
そんな悩みも言語の発達と共に解消してゆくのでしょう!
是非お願いしますね!M○さん!
それではまたお会いしましょう。