[解決済み] HTMLCollectionをArrayに変換する最も効率的な方法
2022-02-17 22:19:47
質問
HTMLCollectionをArrayに変換するために、当該コレクションの内容を反復して、各項目を手動で配列にプッシュする以外に、より効率的な方法はありますか?
どのように解決するのですか?
var arr = Array.prototype.slice.call( htmlCollection )
は、quot;native" のコードを使用しても同じ効果が得られます。
編集
これは多くのビューを得るので、次のようなより簡潔な表現があることに注意してください(@oriol さんのコメントによる)。 効果的に と同等です。
var arr = [].slice.call(htmlCollection);
しかし、@JussiR さんのコメントによると、"verbose" 形式とは異なり、処理中に空の、未使用の、そして実際に使用できない配列インスタンスが作成されることに注意してください。 この点についてコンパイラがどうするかは、プログラマの知るところではありません。
編集
ECMAScript 2015 (ES 6)からは、次のようなものもあります。 Array.from :
var arr = Array.from(htmlCollection);
編集
また、ECMAScript 2015 では
スプレッド演算子
と機能的に同等である。
Array.from
(ただし
Array.from
は第2引数としてマッピング関数をサポートしています)。
var arr = [...htmlCollection];
上記2つの動作は
NodeList
.
ご紹介した方法の性能比較です。 http://jsben.ch/h2IFA
関連
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み】Babel NodeJS ES6: SyntaxError: 予期しないトークンのエクスポート
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] JavaScriptの配列で一意な値をすべて取得する(重複を排除する)。
-
[解決済み] オブジェクトの配列から、プロパティの値を配列として取り出す。
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Javascriptで配列から空の要素を削除する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】node.js TypeError: path must be absolute or specify root to res.sendFile [JSONのパースに失敗しました]。
-
[解決済み】JavaScriptのinnerHTMLで要素が更新されない
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】「Uncaught TypeError: Chromeで "Illegal invocation "が発生する。
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】React-Routerの子が1つしかない。
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み】HTMLの最初の行に予期しないトークン<がある。