创建空字符串数组?

时间:2013-11-15 17:51:32

标签: javascript node.js coffeescript

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

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

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

10 个答案:

答案 0 :(得分:43)

更新:在较新的浏览器上 - 使用.fillArray(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;
}

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

答案 1 :(得分:10)

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

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

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

Array(1000).fill("");

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

答案 2 :(得分:3)

你可以得到一个定义大小的数组,并用一些标记填充它。

var n =数组(大小).fill(“”);

答案 3 :(得分:1)

可以从中创建一个函数:

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

答案 4 :(得分:0)

你可以这样做:

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

答案 5 :(得分:0)

只是为了好玩

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

答案 6 :(得分:0)

CoffeeScript中最简单的方法是使用loop comprehension

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/

答案 7 :(得分:0)

虽然没有广泛使用,但一旦浏览器开始支持EcmaScript 6阵列理解,您将能够做到以下几点:

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

答案 8 :(得分:0)

您可以尝试通过这种方式做到这一点:

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

答案 9 :(得分:0)

使用Array.from;

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