JSlint不喜欢使用Array构造函数,并且没有允许它们的JSLint选项。因此,要创建长度为n的数组,不允许以下内容:
var arr = new Array(n);
以下是解决这个问题的唯一方法吗?
var arr = [];
arr.length = 5;
在正常情况下,这不是什么大问题(使用两行代码而不是一行代码),但我很遗憾无法使用简洁的字符串乘数黑客:
function repeat(str, times) {
return new Array(times + 1).join(str);
}
答案 0 :(得分:2)
JSLint相当容易智取。
你可以这样做:
function repeat(str, times) {
var A = Array;
return new A(times + 1).join(str);
}
这也有效:
function repeat(str, times) {
return new Array.prototype.constructor(times + 1).join(str);
}