首页 > 解决方案 > 我尝试将拆分的字符串与多个字符进行比较

问题描述

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);

我首先使用案例,它有效但看起来太多了所以我想我尝试或者但我得到了输入的输出

我期望的是:

["H", "I", "S", "F", "0", "N", "0", "O", "0"]

标签: javascript

解决方案


图案

char[i] == 'H' || 'K' || 'Y'

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

要检查字符是否在数组或字符串中,您可以使用includes( Array#includes/ String#includes) 它根据数组或字符串检查给定值并返回trueor false

该提案使用Array.fromwhich 接受一个字符串(基本上是任何可迭代对象,或具有长度属性的对象)并返回一个字符数组。虽然此方法包含映射功能,但您可以检查字符并根据检查返回不同的字符。

var input = 'HISFANTOR',
    output = Array.from(input, c => 'HKYVBCNOFPSIU'.includes(c) ? c : 0);

console.log(...output);


推荐阅读