I know that JSLint is only a guide and you should take what it says with a grain of salt, however, I’m curious how I can even resolve this warning without rewriting the entire function. Here is the function of interest:
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 tells me “JS Lint: Use the array literal notation [].” and it is pointing to the line with string.split(). How can I satisfy JSLint without having to re-write the entire function? Is it even possible?
I am aware that there are other methods to generate random strings; I’m interested in how to resolve the JSLint warning using this method.
You can call the String prototype split function with the string as the scope to avoid the warning:
Don’t know why JSLint complains as split is a String method.
See: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split
this also seems to pass through without complaints: