web-dev-qa-db-ja.com

空の文字列の配列を作成していますか?

JavaScriptで空の文字列の配列を作成する簡単な方法はありますか?現在、私がそれを行うと考えることができる唯一の方法は、ループを使用することです:

var empty = new Array(someLength);
for(var i=0;i<empty.length;i++){
    empty[i] = '';
}

しかし、通常のjavascriptまたはcoffeescriptを使用して1行でこれを行う方法があるかどうか疑問に思っています。

19
Abe Miessler

更新:新しいブラウザ-_.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;
}
_

そうすれば、何が行われているかが完全に明確になり、再利用できます。

45

arrayとStringでジェネリックプロトを使用する簡単な方法を次に示します。

"".split.call(Array(1001), ",")

編集:さらに簡単な方法があり、いくつかは読みやすくなっています:

Array(1000).fill("");

" ".repeat(999).split(" ");
10
dandavis

サイズを定義する配列を取得して、トークンで埋めることができます。

var n = Array(size).fill( "");

5
user2592256

あなたcouldそれから関数を作る:

function stringArray(length) {
    var arr = [];
    for(var i = 0; i < length; ++i) { arr.Push(''); }
    return arr;
}
1
qwertynl

あなたはこの方法でそれをやろうとすることができます:

let n = 1000;
var emptyStrings = [...Array(n)].map(() => '')
1
Evan Ross

Array.from;の使用

const n = 5;
const arr = Array.from({length: n}).map(el => "")
console.log(arr)
0
Sahin Erbay

あなたはこのようなことをすることができます:

var someLength = 10;
var empty = Array.apply(0, Array(someLength)).map(function(){return '';});
// result: ["", "", "", "", "", "", "", "", "", ""]
0
nderscore

CoffeeScriptで行う最も簡単なことは、 ループ内包表記 を使用することです。

a = ('' for i in [0 ... someLength]) # Note: 3 dots
a = ('' for i in [1  .. someLength]) # Or 2 dots and start at 1
#...

デモ: http://jsfiddle.net/ambiguous/b9Vj9/

0
mu is too short

ちょうど楽しみのために

var empty = Array.apply(null, new Array(someLength)).map(String.prototype.valueOf,"");
0
epascarello

広く利用可能ではありませんが、ブラウザがEcmaScript 6の配列内包をサポートし始めると、次のように何かを実行できるようになります。

var n = 1000;
var empty_strs = ['' for (x of new Array(n))]
0
rdodev