在使JSLint满意的同时创建一个n大小的数组?

时间:2012-03-09 03:47:16

标签: javascript arrays jslint

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);
}

1 个答案:

答案 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);
}