如何使用||编写if语句(或)减少重复?

时间:2015-11-30 16:25:34

标签: javascript

我正在尝试写一些检查字母不等于元音的东西。我知道我可以用正则表达式做到这一点,但是为了更多地了解条件语句,我怎么能更有效地写这样的东西?

if (myArray[i] !== "a" || myArray[i] !=="e" || myArray[i] !=="i" || myArray[i] !=="o" || myArray[i] !=="u") {
    console.log(myArray[i] + "");
}

效率越高,我的意思就是在没有myArray[i] !== "a"重复这么多的情况下干得更多。

3 个答案:

答案 0 :(得分:8)

一个很好的方法是将所有元音都放在一个字符串中并使用switch = {"Emma":"George", "she":"he", "hers":"his"} def editWords(fin): #open the file fin = open(filename, "r") #create output file with open("Edited.txt", "w") as fout: #loop through file for line in fin.readlines(): for word in switch.keys(): if word in line.split(): line = line.replace(word, switch[word]) fout.write(line) fin.close()

indexOf

如果您需要不区分大小写,请使用if ("aeiou".indexOf(myArray[i]) === -1) { // Do a thing if myArray[i] is not a vowel }

正如Mike'Pomax'Kamermans在对此答案的评论中所提到的,使用正则表达式检查整个字符串中的元音而不是检查每个单独的字符会更好更快。该解决方案看起来像:

myArray[i].toLowerCase()

答案 1 :(得分:2)

试,

//the myArray[i] is not a vowel
if (["e","e","o","i","u"].indexOf(myArray[i]) === -1 ) {
    console.log(myArray[i] + "");
}

答案 2 :(得分:0)

你可以制作一个元音数组,然后搜索你的键是否在数组内。

var arrVowels = ['a','e','i','o','u'];
var myArray = ['b'];
if(!in_array(myArray[0], arrVowels)) {
    alert(" is not in the array! ");
}

function in_array(needle, haystack) {
  var key = '';
  for (key in haystack) {
    if (haystack[key] == needle) {
      return true;
    }
  }

  return false;
}

修改

对于所有评论家,请参阅有关in_array()功能的更多信息:

http://phpjs.org/functions/in_array/