2

可能重复:
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 标准,但是,鉴于我想要做的事情,我无法想象如何摆脱这个错误。

有什么建议吗?

谢谢。

4

2 回答 2

5

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

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

到:

var arr = [];
arr.length = count + 1 - str.length;
return arr​.join('0') + str;
于 2012-09-02T03:22:47.913 回答
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;
  };
}
于 2012-09-02T03:38:47.257 回答