创建空字符串数组?

Abe*_*ler 18 javascript node.js coffeescript

有没有一种简单的方法来在javascript中创建一个空字符串数组?目前我能想到的唯一方法是使用循环:

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

但我想知道是否有一些方法可以使用常规javascript或coffeescript在一行中执行此操作.

Ben*_*aum 47

更新:在较新的浏览器上 - 使用.fill:Array(1000).fill('')将创建一个包含1000个空字符串的数组.


是的,有一种方法:

 var n = 1000;
 Array(n).join(".").split("."); // now contains n empty strings.
Run Code Online (Sandbox Code Playgroud)

我可能会使用循环,它传达的意图更清晰.

function repeat(num,whatTo){
    var arr = [];
    for(var i=0;i<num;i++){
        arr.push(whatTo);
    }
    return arr;
}
Run Code Online (Sandbox Code Playgroud)

这样,很清楚正在做什么,你可以重复使用它.

  • +1表示聪明,并提及使用循环使意图清晰. (3认同)
  • *(悄悄地等待某人接受一个指数偏移)* (3认同)

dan*_*vis 10

这是在Array和String上使用泛型protos的一种更简单的方法:

"".split.call(Array(1001), ",")
Run Code Online (Sandbox Code Playgroud)

编辑:现在有更简单的方法,其中一些是可读的:

Array(1000).fill("");

" ".repeat(999).split(" ");
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以获得定义大小的数组,并用一些令牌填充它。

var n = Array(size).fill(“”);

  • @Mogsdad 意图更清晰,也更易读。最佳答案恕我直言。 (3认同)
  • PS:这将返回“any[]”而不是“string[]” (2认同)