Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能帮我找到一个更好的Javascript for循环I';你写了什么?_Javascript_Loops_For Loop - Fatal编程技术网

有人能帮我找到一个更好的Javascript for循环I';你写了什么?

有人能帮我找到一个更好的Javascript for循环I';你写了什么?,javascript,loops,for-loop,Javascript,Loops,For Loop,提前感谢任何能想到一种更有效或更好的方法来实现我的Javascript代码的人: var availableCharacters=Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9")

提前感谢任何能想到一种更有效或更好的方法来实现我的Javascript代码的人:

var availableCharacters=Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");

for (counter=0; counter<availableCharacters.length; counter++){
  if(availableCharacters[counter]=="i"||
     availableCharacters[counter]=="l"||
     availableCharacters[counter]=="I"||
     availableCharacters[counter]=="L"||
     availableCharacters[counter]=="1"||
     availableCharacters[counter]=="0"||
     availableCharacters[counter]=="O"){
      availableCharacters.splice(counter, 1);
    }
}
var-availableCharacters=数组(“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”、“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”);
对于(计数器=0;计数器
var可用字符=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”、“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”);

对于(计数器=0;计数器具有简单过滤器列表的替代解决方案:

var availableCharacters=Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3",     "4", "5", "6", "7", "8", "9");
var filter = ['i', 'l', 'I', 'L', '1', '0', 'O'];
for (counter=0; counter<availableCharacters.length; counter++){
    if(filter.indexOf(availableCharacters[counter]) >= 0) {
        availableCharacters.splice(counter, 1);
    }
}
var-availableCharacters=数组(“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”、“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”);
var filter=['i','l','i','l','1','0','O'];
用于(计数器=0;计数器=0){
可用字符拼接(计数器,1);
}
}

最近的浏览器支持数组。过滤器

var availableCharacters = ........;
availableCharacters = availableCharacters.filter(function(a) {
  return !a.match(/[ilLI10O]/);
});
但是,对于较旧的浏览器,Mark Linus给出的For循环很好。

如果您愿意这样使用和编写:


过滤器很好,但是一个简单的字符串替换在没有网络的情况下可以工作-

   var availableCharacters=["a", "b", "c", "d", "e", "f", "g", "h", "i", 
   "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", 
   "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];

  var allowed= availableCharacters.join('').replace(/[iLl10O]/g,'').split('');

  returned value: (Array)
  a,b,c,d,e,f,g,h,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,2,3,4,5,6,7,8,9

@pimvdb的可能副本有用的阅读,谢谢,一个原始简单的正则表达式:)太棒了,谢谢:)正则表达式对浏览器有任何要求吗?是的,它们是。另外,看看Kolink的answermodern浏览器引擎处理正则表达式的速度惊人地快
。例如,拆分('a')。加入('b')
慢。替换(/a/g,'b')
)。PS:不要使用对象构造函数
Array
而不使用
new
关键字,而是使用括号…即使是cleaner也可能使用一个字符串并执行
。split(“”
。否,
中的
检查数组中
0、1、2、
的键。改用
indexOf
。非常正确。现在应该修复了。这实际上是返回regexp中的字符数组。我想你的意思是否定。谢谢你,我是简短易读代码的粉丝。正如下面提到的,Regexes在现代浏览器上不征税,我认为这很好地解决了我的问题。有人能看到mobile Safari使用这种方法在250-300个元素的数组中循环时遇到问题吗?这并不重要,但如果这段代码也能在iOS设备上运行良好,那将是一个额外的收获!
var availableChars = ["a", "b", "c", '1', 'i', 'o', "9"];
var result = $.grep(availableChars, function(c) {
    return !c.match(/[^il10o]/i)
})
document.write(result)​
   var availableCharacters=["a", "b", "c", "d", "e", "f", "g", "h", "i", 
   "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", 
   "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];

  var allowed= availableCharacters.join('').replace(/[iLl10O]/g,'').split('');

  returned value: (Array)
  a,b,c,d,e,f,g,h,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,2,3,4,5,6,7,8,9