我尝试将分割后的字符串与多个字符进行比较

His*_*tor 6 javascript

var input = 'HISFANTOR';
var output = [];
var char = input.split('');

for (var i = 0, len = char.length; i < len; i++) {
   if (char[i] == 'H' || 'K' || 'Y' || 'V' || 'B' || 'C' || 'N' || 'O' || 'F' || 'P' || 'S' || 'I' || 'U'){
      output.push(char[i]);
   }else{
      output.push('0');
   }
}
console.log(output);
Run Code Online (Sandbox Code Playgroud)

我先有案例,它可以工作,但是看起来太多了,所以我认为我尝试了一下,但还是得到了输入的输出

我期望的是:

["H", "I", "S", "F", "0", "N", "0", "O", "0"]
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 8

模式

char[i] == 'H' || 'K' || 'Y'
Run Code Online (Sandbox Code Playgroud)

返回第一个真实值,它是与的比较,'H'如果比较为false,则取'K'。不使用所有其他字符串。

要检查字符是否在数组或字符串中,可以使用includesArray#includes/ String#includes)根据数组或字符串检查给定值并返回truefalse

该提议使用的Array.from是一个字符串(基本上是任何可迭代对象,或者是一个具有length属性的对象),并返回一个字符数组。尽管此方法包含映射功能,但您可以检查字符并根据检查结果返回差异字符。

char[i] == 'H' || 'K' || 'Y'
Run Code Online (Sandbox Code Playgroud)


Cod*_*iac 2

char[i] == 'H' || 'K' || 'Y'这不会检查char[i]每个字符,

你需要改变它

(char[i] == 'H') || (char[i] == 'K') || (char[i] ==  'Y')
Run Code Online (Sandbox Code Playgroud)

或者你可以使用indexOf

(char[i] == 'H') || (char[i] == 'K') || (char[i] ==  'Y')
Run Code Online (Sandbox Code Playgroud)