带字符串拆分的JS Lint数组文字符号
JS Lint Array Literal Notation with String Split
我知道JSLint只是一个指南,你应该对它所说的持保留态度,然而,我很好奇如何在不重写整个函数的情况下解决这个警告。以下是感兴趣的函数:
function randomString(length) {
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split(''),
str = '',
i;
if (!length) {
length = randomNumber(chars.length);
}
for (i = 0; i < length; i++) {
str += chars[randomNumber(chars.length)];
}
return str;
}
JS Lint告诉我"JS Lint:使用数组文字符号[]。"它指向string.split()
的行。如何在不重写整个函数的情况下满足JSLint?这可能吗?
我知道还有其他方法可以生成随机字符串;我对如何使用此方法解决JSLint警告很感兴趣。
这是您的数组,采用文字数组表示法:
[ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'T', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ]
JSLint可能建议这样做,因为这样解释器就不必在运行时拆分String,而是已经准备好使用Array了。
简单地用这个PHP代码生成:
php > $chars = str_split('ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz');
php > echo "[ '".implode("', '", $chars)."' ]";
[ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'T', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ]
php >
您可以调用以字符串为作用域的String原型拆分函数来避免警告:
var chars = String.prototype.split.call('ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz', ''),
不知道为什么JSLint抱怨split是一个String方法。
请参阅:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split
这似乎也毫无怨言:
var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz',
chars = alphabet.split("");
相关文章:
- 是索引数组文字的好做法
- 如何避免“;使用数组文字表示法“;以下javascript代码中的jslint错误
- 是否可以将字符串转换为文字对象数组
- 如何检查文字对象是否在 Javascript 数组中
- 为什么有逗号但没有元素的数组文字的长度不为0
- 如何在 JS 中编写数组文字表示法
- Javascript 数组“文字” - 这只是描述它是如何创建的,因为它可以即时更改
- 如何简化 JavaScript/ECMAScript 数组文字生成
- JavaScript/ECMAScript 数组文字生产的 LOOKAHEADs
- Javascript 对象数组文字的可靠长度
- 为什么JSLint告诉我“;使用数组文字符号[]&”;
- 最奇怪的javaScript数组文字
- 带字符串拆分的JS Lint数组文字符号
- JavaScript数组文字定义中逗号后面的值是什么
- 在JavaScript中重写数组文字
- 为什么在javascript中[,]是一个有效的数组文字
- 数组对象与数组文字-性能JavaScript
- 数组文字方法调用和对象文字方法调用的区别
- Js:多维数组文字声明:添加元素
- 如何使用 HJScript 或 HJavaScript 创建数组文字