[解決済み] 同じ要素を複数回繰り返した配列を作成する
2022-03-20 18:46:51
質問
Pythonでは、どこで
[2]
がリストである場合、次のコードはこのような出力になります。
[2] * 5 # Outputs: [2,2,2,2,2]
JavaScriptの配列でこれを簡単に行う方法はありますか?
以下のような関数を書いてやってみたのですが、もっと短くて良いものはないでしょうか?
var repeatelem = function(elem, n){
// returns an array with element elem repeated n times.
var arr = [];
for (var i = 0; i <= n; i++) {
arr = arr.concat(elem);
};
return arr;
};
解決方法は?
このようにできます。
function fillArray(value, len) {
if (len == 0) return [];
var a = [value];
while (a.length * 2 <= len) a = a.concat(a);
if (a.length < len) a = a.concat(a.slice(0, len - a.length));
return a;
}
繰り返しごとに配列が2倍になるので、少ない繰り返しで非常に大きな配列を作ることができます。
注意:また、この関数を改良するために
push
の代わりに
concat
というように
concat
は反復するたびに新しい配列を作成します。このように(配列の扱い方の例として示しただけです)。
function fillArray(value, len) {
var arr = [];
for (var i = 0; i < len; i++) {
arr.push(value);
}
return arr;
}
関連
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
jsを使った簡単な照明スイッチのコード
-
Vueはランニングライト形式のテキストを水平方向にスクロールする機能を実装している
-
Vueのフィルタの説明
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み] テスト
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み] TypeError: $.ajax(...) is not a function?
-
[解決済み】ExpressJS - throw er Unhandled errorイベント
-
nullのプロパティinnerHTMLを読み取れません エラーメッセージ
-
[解決済み] 1...N を含む配列の作成方法