【发布时间】:2012-03-09 03:47:15
【问题描述】:
JSlint 不喜欢使用 Array 构造函数,并且没有 JSLint 选项允许它们使用。因此,要创建一个长度为 n 的 Array,以下是不允许的:
var arr = new Array(n);
下面是我可以解决这个问题的唯一方法吗?
var arr = [];
arr.length = 5;
在正常情况下这没什么大不了的(使用两行代码而不是一行),但我很遗憾不能使用简洁的字符串乘法器技巧:
function repeat(str, times) {
return new Array(times + 1).join(str);
}
【问题讨论】:
-
为什么需要创建一个 n 大小的数组?鉴于您已将字符串乘法器函数描述为使用“hack”,我很惊讶您关心 jslint 对
new Array()的评价...但您可以使用 for 循环或.length =轻松实现repeat()函数如果这是你需要new Array()的唯一原因。 -
“我很遗憾无法使用...”您是否受到需要使用 JSLint 的限制?
-
@Michael 不,这不是重复的。
-
@nnnnnn 这是关于当一个聪明的单行代码可用时必须使用 3 行代码......你读过我的问题中的用例吗?
标签: javascript arrays jslint