[解決済み] Pythonのrange()に似たJavaScriptの関数
2022-08-10 11:22:11
質問
JavaScriptでPythonの
range()
?
毎回以下のような行を書くよりも、もっと良い方法があるはずだと思うのですが。
array = new Array();
for (i = 0; i < specified_len; i++) {
array[i] = i;
}
どのように解決するのですか?
いいえ がない場合は、ありません。 作ることができる .
PythonのJavaScriptの実装である
range()
試行錯誤の結果 Pythonでどのように動作するかをエミュレートする ということで、このような関数を作ってみます。
function range(start, stop, step) {
if (typeof stop == 'undefined') {
// one param defined
stop = start;
start = 0;
}
if (typeof step == 'undefined') {
step = 1;
}
if ((step > 0 && start >= stop) || (step < 0 && start <= stop)) {
return [];
}
var result = [];
for (var i = start; step > 0 ? i < stop : i > stop; i += step) {
result.push(i);
}
return result;
};
参照 このjsfiddle を参照してください。
の比較
range()
をJavaScriptとPythonで比較
以下のように動作します。
-
range(4)
リターン[0, 1, 2, 3]
, -
range(3,6)
リターン[3, 4, 5]
, -
range(0,10,2)
リターン[0, 2, 4, 6, 8]
, -
range(10,0,-1)
リターン[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
, -
range(8,2,-2)
リターン[8, 6, 4]
, -
range(8,2)
リターン[]
, -
range(8,2,2)
リターン[]
, -
range(1,5,-1)
リターン[]
, -
range(1,5,-2)
リターン[]
,
とそのPythonの対応する は全く同じように動作します は(少なくとも言及されたケースでは)全く同じように動作します。
>>> range(4)
[0, 1, 2, 3]
>>> range(3,6)
[3, 4, 5]
>>> range(0,10,2)
[0, 2, 4, 6, 8]
>>> range(10,0,-1)
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> range(8,2,-2)
[8, 6, 4]
>>> range(8,2)
[]
>>> range(8,2,2)
[]
>>> range(1,5,-1)
[]
>>> range(1,5,-2)
[]
ですから、もしPythonのような関数が必要なら
range()
のような関数が必要な場合、上記の解決策を使うことができます。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 与えられたキーがすでに辞書に存在するかどうかをチェックする
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] JavaScriptで2つの数値の間の乱数を生成する
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み】JavaScript版sleep()とは?)
-
[解決済み】オブジェクトからプロパティを削除する(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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Javascriptによるタッチスクリーンデバイスの検出
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] 無効になっている入力フィールドの値を送信する
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?