[解決済み] JavaScriptで配列の長さを初期化する方法は?
質問
私が読んだJavaScriptの配列に関するチュートリアルのほとんど(
w3schools
と
デブグル
を使用して Array コンストラクタに整数を渡すと、特定の長さの配列を初期化できることを示唆しています)。
var test = new Array(4);
の構文があります。
この構文を自分のjsファイルで自由に使った後、ファイルの1つを jsLint というメッセージが表示され、パニックになりました。
<ブロッククオート
エラーです。1 行目の文字 22 に問題があります: ')' を期待しましたが、代わりに '4' が表示されました。
var test = new Array(4);
1行目23文字目に問題あり:';'を期待したが、')'と表示された。
var test = new Array(4);
1行目23文字目に問題あり:識別子を期待したが、代わりに')'が表示された。
一通り読んだら
jsLintによる動作の説明
は、jsLint ではあまり好きではないようです。
new Array()
の構文が好きで、代わりに
[]
は、配列の宣言時に使用します。
そこで、いくつか質問があります。
まず、なぜ? を使うことで、何かリスクがあるのでしょうか?
new Array()
の構文で代用できますか? 注意すべきブラウザの非互換性はありますか?
次に、角括弧構文に切り替えた場合、配列の宣言とその長さの設定をすべて1行で行う方法はないでしょうか、それともこのようにしなければならないでしょうか。
var test = [];
test.length = 4;
解決方法は?
-
なぜ長さを初期化するのですか?理論的には必要ありません。を使用するテストはすべて、長さを初期化する必要があるからです。
length
を使用して配列が空かどうかを調べると、 配列は空ではないと報告されます。
一部 テスト は、大きな配列の初期長を設定することで できる しかし、その性能はブラウザによって異なるようです。 -
jsLint は
new Array()
コンストラクタがあいまいだからです。new Array(4);
空の配列を作成します 長さ 4. しかし
new Array('4');
は配列を作成します。 の値を含む
'4'
.
コメントについて。JSでは、配列の長さを初期化する必要はありません。動的に増えていくからです。長さを変数に格納するだけでよいのです。
var data = [];
var length = 5; // user defined length
for(var i = 0; i < length; i++) {
data.push(createSomeObject());
}
関連
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】React - TypeError: 未定義のプロパティ 'props' を読み取ることができない。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み】JavaScriptのオブジェクトの長さ
-
[解決済み】オブジェクトからプロパティを削除する(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 実装 サイバーパンク風ボタン