[解決済み] この状況で .map() は何をしているのでしょうか?
2023-02-01 20:26:32
質問
Chromeのコンソールを使って、入力と出力を行っています。
[0].map(Array);
[[0, 0, [0]]]; // output
ここで何が起こっているのか?
EDIT
なぜこれが気になるかというと、次のようなものがあるからです。
[0].map(String);
を返します。
["0"];
そして、そうではなく
["0", "0", "String"]
どのように解決するのですか?
この
.map()
機能
は
Array()
関数を三つの引数で呼び出しています。
0
である配列要素の値、その要素のインデックス、さらに
0
を含む、配列全体への参照です。
つまり、こんな感じです。
var a = [0];
var index = 0
Array(a[index], index, a); // create array with three elements
で返される配列は
Array()
が返す配列の最初の要素になります。
.map()
が作成する配列の最初の要素になるため、ネストのレベルが増えることになります。
[[0, 0, [0]]]
の結果で余分なレベルのネストが発生します。
あなたの編集に関するEDIT:あなたが言うとき
[0].map(String);
と書くと、結果として
String()
のように同じ三つの引数で呼び出されます。
String(a[index], index, a)
と同じように3つの引数で呼び出されますが
String()
関数は最初の引数以外を無視するのに対して
Array()
は与えられた引数を全て使用します。
関連
-
[解決済み] 正規表現で変数を使うには?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] .prop() vs .attr()
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] なぜ ++[[]][+[] +[+[]] は "10" という文字列を返すのでしょうか?
-
[解決済み] Facebookがブラウザに統合されたDeveloper Toolsを無効にする方法を教えてください。
-
[解決済み] 各オブジェクトに?重複
最新
-
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。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] TypeScriptのdeclare classとinterfaceの違いとは?
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] javascriptでオプションのパラメータを扱う