我正在尝试制作某种密码学家,我需要替换ex。当用户要求时,每个“a”和“b”。
if (DoYouWannaCrypt == 1) {
binput.forEach(function(v, i) {
if(v === "a") {
input[i] = "$"
}
})
};
这样可以正常工作,但我想添加另一个条件,即只应对另一个数组的所有第5个值进行此操作。
if (Val is 5th) {
if (DoYouWannaCrypt == 1){
binput.forEach(function(v, i) {
if(v === "a") {
input[i] = "$"
}
})
}
};
我想你可以看到我被困在哪里。我需要它才能为所有第五个值而不仅仅是第一个值。
答案 0 :(得分:2)
这就是地图的用途:
var crypted=binput.map((l,i)=>(i+1)%5?l:({"a":"$"}[l]||l));
http://jsbin.com/zepewituro/edit?console
检查索引(从0开始,这就是为什么+1)模5不是0,然后取字母l,如果它是0(那么我们在第5 * n位置),然后我们尝试替换我们的另一个字母,如果不可能回写到字母(|| l)。
答案 1 :(得分:1)
由于您的代码似乎与您的问题无关,因此我先将其安全地存储在一个函数中:
function something(binput, input, DoYouWannaCrypt) {
if (DoYouWannaCrypt == 1)
binput.forEach(function(v, i) {if (v === "a") input[i] = "$"});
}
如果您只想对anotherArray
的第一个元素执行此操作:
for (let Val in anotherArray)
if (!Val) something(binput, input, DoYouWannaCrypt);
如果你想对anotherArray
的每个元素执行:
for (let Val in anotherArray)
something(binput, input, DoYouWannaCrypt);
如果您想对anotherArray
的每五个元素执行:
for (let Val in anotherArray)
if (!(Val%5)) something(binput, input, DoYouWannaCrypt);