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);
我首先使用案例,它有效但看起来太多了所以我想我尝试或者但我得到了输入的输出
我期望的是:
["H", "I", "S", "F", "0", "N", "0", "O", "0"]
解决方案
图案
char[i] == 'H' || 'K' || 'Y'
返回第一个真值,即与 的比较,'H'
如果比较为false
,则采用'K'
。不使用所有其他字符串。
要检查字符是否在数组或字符串中,您可以使用includes
( Array#includes
/ String#includes
) 它根据数组或字符串检查给定值并返回true
or false
。
该提案使用Array.from
which 接受一个字符串(基本上是任何可迭代对象,或具有长度属性的对象)并返回一个字符数组。虽然此方法包含映射功能,但您可以检查字符并根据检查返回不同的字符。
var input = 'HISFANTOR',
output = Array.from(input, c => 'HKYVBCNOFPSIU'.includes(c) ? c : 0);
console.log(...output);
推荐阅读
- typescript - 创建 TypeScript 类时如何减少样板文件
- python - 将python套接字对象保存并加载到sqlite db?
- python-3.x - 将 CSV 写入多行
- flutter - 如何使用 orderBy() 和 Where() 相同?(颤振网络)
- sql - “类型不能用作索引中的键列。”
- yugabyte-db - Yugabyte :: ysqlsh:无法连接到服务器:连接被拒绝
- javascript - 如何将额外参数(不是查询参数)传递给 Angular 7+ 路由模块?
- r - 如何在 R 中为热图的每列添加自定义文本?
- middleware - module.exports nodejs,调用带参数的函数
- javascript - 应在单行中选择至少一个复选框