如何避免在以下javascript代码中使用“数组文字符号”jslint错误

时间:2012-09-02 03:18:49

标签: javascript jslint

  

可能重复:
  What's wrong with var x = new Array();

if (!Number.prototype.toZeroPaddedString) {
  Number.prototype.toZeroPaddedString = function (count) {
    "use strict";
    var str = this.toString();
    return (new Array(count + 1 - str.length)).join('0') + str;
  };
}

我希望我的代码能够通过jsLint标准清理,但是,我无法想象如何根据我想要的内容摆脱这个错误。

有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:5)

数组文字表示法是使用new Array()的替代方法,因为Crockford(理所当然地)不喜欢new关键字。符号为[],正如new Object()的文字符号为{}一样。为了使数组的长度符合要求,您可以在数组上设置.length

return (new Array(count + 1 - str.length)).join('0') + str;

要:

var arr = [];
arr.length = count + 1 - str.length;
return arr​.join('0') + str;

答案 1 :(得分:0)

试试这个:

if (!Number.prototype.toZeroPaddedString) {
  Number.prototype.toZeroPaddedString = function (count) {
    "use strict";
    var str = this.toString();
    var ary = [];
    ary.length = count + 1 - str.length;
    return ary.join('0') + str;
  };
}