创build空string的数组?
有一种简单的方法来在JavaScript中创build一个空string数组? 目前唯一可以考虑的方法是循环:
var empty = new Array(someLength); for(var i=0;i<empty.length;i++){ empty[i] = ''; }
但我想知道是否有一些方法来做到这一点使用普通的JavaScript或coffeescript一行。
更新:在较新的浏览器上 – 使用.fill
: Array(1000).fill('')
将创build一个由1000个空string组成的数组。
是的,有一个方法:
var n = 1000; Array(n).join(".").split("."); // now contains n empty strings.
我可能会使用循环虽然,它expression意图更清晰。
function repeat(num,whatTo){ var arr = []; for(var i=0;i<num;i++){ arr.push(whatTo); } return arr; }
这样,完全清楚你正在做什么,你可以重复使用它。
在Array和String上使用generics原型的方法如下:
"".split.call(Array(1001), ",")
编辑:现在有更简单的方法,其中一些是可读的:
Array(1000).fill(""); " ".repeat(999).split(" ");
你可以做一个function:
function stringArray(length) { var arr = []; for(var i = 0; i < length; ++i) { arr.push(''); } return arr; }
你可以做这样的事情:
var someLength = 10; var empty = Array.apply(0, Array(someLength)).map(function(){return '';}); // result: ["", "", "", "", "", "", "", "", "", ""]
只是为了好玩
var empty = Array.apply(null, new Array(someLength)).map(String.prototype.valueOf,"");
在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/
尽pipe不是广泛可用的,但是一旦浏览器开始支持EcmaScript 6数组parsing,您将能够做到以下几点:
var n = 1000; var empty_strs = ['' for (x of new Array(n))]