Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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 有人能给我解释一下代码的第二部分吗?_Javascript_Arrays_Foreach - Fatal编程技术网

Javascript 有人能给我解释一下代码的第二部分吗?

Javascript 有人能给我解释一下代码的第二部分吗?,javascript,arrays,foreach,Javascript,Arrays,Foreach,结果:['e',103,222,'a','i'] 我知道我们在数组中循环,寻找匹配的值,我知道代码的其余部分做什么,但我不明白?三元运算符只是一种奇怪(或缩小)的说法: if(v==97 | | v==101 | | v==105 | | v==111 | | v==117){ a[i]=String.fromCharCode(v);//由数字v表示的字符。例如,g 97=>a' }否则{ a[i]=v;//没有任何转换的数字v } i++; 您的代码正在检查数组中的元音代码,如果元音代码匹配,

结果:['e',103,222,'a','i']


我知道我们在数组中循环,寻找匹配的值,我知道代码的其余部分做什么,但我不明白

三元运算符只是一种奇怪(或缩小)的说法:

if(v==97 | | v==101 | | v==105 | | v==111 | | v==117){
a[i]=String.fromCharCode(v);//由数字v表示的字符。例如,g 97=>a'
}否则{
a[i]=v;//没有任何转换的数字v
}
i++;

您的代码正在检查数组中的元音代码,如果元音代码匹配,则将其替换为文本表示形式或数字

代码的简化版本(如果您理解此)-

a=[10110322297105];
a、 forEach(函数(v,i){
这个[i]=(v==97 | | v==101 | | v==105 | | v==111 | | v==117)字符串;
},a);

控制台日志(a)我会这样写。基本上,一些数字会被字符替换

a=[10110322297105];
对于(i=0;i控制台日志(a)它检查数组中的每个索引,并用给定的ascii字符值替换当前索引,然后递增索引。示例:索引=0;v==101是真的,因此,[index]=char(101),它是'e',然后故意增加index,所以现在index=1,但是foreach循环将插入increment index,所以[1]保持原样,现在index=2。等等,三元运算符的真部分是存储与当前索引对应的字符值,而假部分只是存储数字,明白了吗。谢谢非常感谢。但是如果我们这样写的话,我们需要在if语句之前做一个for循环,对吗?它可以保持在同一个位置-
。forEach
已经作为数组上的循环。
let a = [101, 103, 222, 97, 105];

var i = 0;
a.forEach(function(v){
  v == 97 || v == 101 || v == 105 || v==111 || v ==117 ? a[i++] = String .fromCharCode(v) : a[i++] = v;}),a;


console.log(a);