簡體   English   中英

帶有字符串拆分的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("");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM