最近在项目里遇到了这种问题,大概就简单写下解题思路吧。
给出指定长度 n 然后创建一个该长度的的空字符串数组。比如 n=3; 输出应该是 ['', '', ''];比如 n = 2; 输出应该是 ['', ''];
使用 for
大概这个思路,就是最简单的也很容易让人作为垫底方案的实现;
var a = [];
for (let i=0; i < 3;i++) {
a.push('');
}
使用字符串的分割
充分利用 join 方法
Array(3).join('.').split('.');
使用 Array.prototype.fill()
Array.fill 是 ES6 新增的方法,它可以帮助你填充数组。将原数组的每一个元素填充成 fill 传入的值。
[1,2,3].fill(1)
// => [1,1,1]
它支持传入三个参数:
fill(val, start, end)
@param val 传入的值
@param start 传入的索引
@param end 结束的索引
[1, 2, 3].fill(4, 1); // [1, 4, 4]
[1, 2, 3].fill(4, 1, 2); // [1, 4, 3]
[1, 2, 3].fill(4, 1, 1); // [1, 2, 3]
[1, 2, 3].fill(4, 3, 3); // [1, 2, 3]
[1, 2, 3].fill(4, 3, 3); // [1, 2, 3]
[1, 2, 3].fill(4, -3, -2); // [4, 2, 3]
[1, 2, 3].fill(4, NaN, NaN); // [1, 2, 3]
[1, 2, 3].fill(4, 3, 5);
所以这个时候答案就很清晰了:
Array(3).fill('');
这是一个开放性问题,读者有什么更好的思路也可以留言交流。