[解決済み] FileListオブジェクトはなぜ配列でないのですか?
質問
ドキュメンテーション。 https://developer.mozilla.org/en-US/docs/Web/API/FileList
なぜ
FileList
は配列ではなくオブジェクトなのでしょうか?このオブジェクトが持つ唯一のプロパティは
.length
であり、唯一のメソッドは
.item()
で、これは冗長です (
fileList[0] === fileList.item(0)
).
どのように解決するのですか?
さて、いくつかの理由が考えられます。ひとつは、配列であれば修正できることです。を修正することはできません。
FileList
インスタンスは変更できません。次に、関連しますが、これはブラウザーのデータ構造に対するビューになる可能性があるため(おそらくそうなる)、最小限の機能セットによって実装が容易になります。
を介して配列に変換することができます。
a = Array.from(theFileList)
(これは ES2015 のメソッドですが、ポリフィルを適用するのは簡単です) または
a = Array.prototype.slice.call(theFileList)
.
2018年にアップデート。
興味深いことに、ですが。
仕様
に関する注記があります。
FileList
:
は
FileList
インタフェースは、Web Platform の一般的な傾向として、このようなインタフェースをArray
プラットフォームオブジェクトに置き換えることです。特に、これは次のような構文を意味します。filelist.item(0)
の他のほとんどのプログラム的な使用は危険にさらされています。FileList
への移行の影響を受けることはないでしょう。Array
型に移行しても影響を受けにくいです。
その書き方はおかしいと思う。私は、トレンドは
iterable
に向かっていると思ったのですが、そうではなく
Array
- への更新のような
NodeList
マーク
iterable
を付けると、スプレッド構文との互換性が保たれます。
for-of
と
forEach
.
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] JavaScriptで日付の書式設定に関するドキュメントはどこにありますか?
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] TypeScriptのdeclare classとinterfaceの違いとは?
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?