使用 if 和 else 以及 charAt 循环数组

Looping an array with if and else as well as charAt

我是 Javascript 的新手,我有一些 C 语言方面的经验,但我不知道自己做错了什么。到目前为止 Javascript 真的很令人困惑,我不明白它,因为 C 是我除了 HTML 和 CSS 之外唯一知道的编程语言,我尝试了这两个代码但是 none其中有工作。

我正在尝试对 charAt 使用 for 循环和 if else 语句。目标是查看名称数组中的第一个字符,如果该字符是 'j' 或 'J',则打印出“Goodbye”+ name,如果不是,则打印出“Hello”+ name。我需要转换成 ASCII 码吗?任何见解或建议都会非常感谢。这是我在下面尝试过的。

var names = ["Yaakov", "John", "Jen", "Jason", "Paul", "Frank", "Larry", "Paula", "Laura", "Jim"];

for (var i = 0; i < names.length; i++) {
  if (names[i].charAt(0) == 'j' || 'J') {
    console.log("Goodbye " + names[i]);
  } else(names[i].charAt(0) !== 'j' || 'J']) {
  console.log("Hello " + names[i]);
}
}

var names = ["Yaakov", "John", "Jen", "Jason", "Paul", "Frank", "Larry", "Paula", "Laura", "Jim"];

var myFunc = function(letter) {
  for (var i = 0; i < letter.length; i++) {
    if (letter[i].charAt(0) == 'j' || 'J') {
      console.log("Goodbye " + letter[i]);
    }
    if (letter[i].charAt(0) !== 'j' || 'J') {
      console.log("Hello " + letter[i]);
    }
  }
}
myFunc(names);

  1. 你应该检查 if (names[i].charAt(0) == 'j' || names[i].charAt(0) == 'J')

  2. 一个else子句不带条件,所以应该是:

else {
    // code here
}

如果您需要检查初始条件 if 之外的条件,您应该使用 :

else if (condition) {
   // code here
}

第一个问题是:
 if(letter[i].charAt(0)=='j' || 'J'){}

在谈论 js 时,它就像 C 中的条件语句:0 表示 false,anything 表示 true。
在您的代码中,您应该输入:

if(letter[i].charAt(0)=='j' || letter[i].charAt(0)=='J'){}

因为这就是它检查这两个字母是否存在的方式。
第二个是:

if(letter[i].charAt(0)!='j' || 'J'){}

同样的事情发生了。为了解决这个问题,我建议您使用符号 && 而不是 ||:

if (letter[i].chatAt(0)!='j' && letter[i].charAt(0)!='J'){}

这里我把完整的代码留给你:

var names = ["Yaakov", "John", "Jen", "Jason", "Paul", "Frank", "Larry", "Paula", "Laura", "Jim"]; 
var myFunc = function (letter) { 
for (var i = 0; i < letter.length; i++) { 
if (letter[i].charAt(0) == 'j' || letter[i].charAt(0)=='J') { 
console.log("Goodbye " + names[i]); 
} 
if (letter[i].charAt(0) != 'j' && letter[i].charAt(0)!='J') {
console.log("Hello " + names[i]); }
 } 
 } 

myFunc(names);

与其像在 C 中那样将 char 处理成 char,我建议您使用这个 for 循环遍历整个数组:

for(let i in letter){
if (letter[i].charAt(0)=='J'){}
}

我向你保证,在很长一段时间内 运行 这会为你节省更多时间。