JavaScriptで空の文字列の配列を作成する簡単な方法はありますか?現在、私がそれを行うと考えることができる唯一の方法は、ループを使用することです:
var empty = new Array(someLength);
for(var i=0;i<empty.length;i++){
empty[i] = '';
}
しかし、通常のjavascriptまたはcoffeescriptを使用して1行でこれを行う方法があるかどうか疑問に思っています。
更新:新しいブラウザ-_.fill
_を使用:Array(1000).fill('')
は1000個の空の文字列の配列を作成します。
はい、方法があります:
_ var n = 1000;
Array(n).join(".").split("."); // now contains n empty strings.
_
私はおそらくループを使用するでしょう、それは意図をより明確に伝えます。
_function repeat(num,whatTo){
var arr = [];
for(var i=0;i<num;i++){
arr.Push(whatTo);
}
return arr;
}
_
そうすれば、何が行われているかが完全に明確になり、再利用できます。
arrayとStringでジェネリックプロトを使用する簡単な方法を次に示します。
"".split.call(Array(1001), ",")
編集:さらに簡単な方法があり、いくつかは読みやすくなっています:
Array(1000).fill("");
" ".repeat(999).split(" ");
サイズを定義する配列を取得して、トークンで埋めることができます。
var n = Array(size).fill( "");
あなたcouldそれから関数を作る:
function stringArray(length) {
var arr = [];
for(var i = 0; i < length; ++i) { arr.Push(''); }
return arr;
}
あなたはこの方法でそれをやろうとすることができます:
let n = 1000;
var emptyStrings = [...Array(n)].map(() => '')
Array.from
;の使用
const n = 5;
const arr = Array.from({length: n}).map(el => "")
console.log(arr)
あなたはこのようなことをすることができます:
var someLength = 10;
var empty = Array.apply(0, Array(someLength)).map(function(){return '';});
// result: ["", "", "", "", "", "", "", "", "", ""]
CoffeeScriptで行う最も簡単なことは、 ループ内包表記 を使用することです。
a = ('' for i in [0 ... someLength]) # Note: 3 dots
a = ('' for i in [1 .. someLength]) # Or 2 dots and start at 1
#...
ちょうど楽しみのために
var empty = Array.apply(null, new Array(someLength)).map(String.prototype.valueOf,"");
広く利用可能ではありませんが、ブラウザがEcmaScript 6の配列内包をサポートし始めると、次のように何かを実行できるようになります。
var n = 1000;
var empty_strs = ['' for (x of new Array(n))]