我写的这段代码有什么问题?

时间:2014-11-14 19:11:56

标签: javascript function

我试图让所有常量都在它们旁边,但没有任何效果。 这是这里的javascript代码。



function opishConversion(text) {
  var output = "";
  for (var i = 0; i < text.length; i = i + 1) {
    if ((text.charAt[i] !== "a") || (text.charAt[i] !== "A") || (text.charAt[i] !== "e") || (text.charAt[i] !== "E") || (text.charAt[i] !== "i") || (text.charAt[i] !== "I") || (text.charAt[i] !== "o") || (text.charAt[i] !== "O") || (text.charAt[i] !== "u") || (text.charAt[i] !== "U")) {
      output += text.charAt[i] + "op";
    } else {
      output += text.charAt[i];
    }
  }
  return output;
}

var text = prompt("Enter Text To Convert");
alert(opishConversion(text));
&#13;
&#13;
&#13;

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:10)

charAtString原语的本机方法。它应该是charAt(i)而不是charAt[i]

答案 1 :(得分:4)

string.charAt是一个函数,而不是索引对象。你需要使用parantheses而不是方括号。

这样:

text.charAt(i);

而不是

text.charAt[i];

您还需要将if语句更改为

&&

表示AND而不是

||

校正:

function opishConversion(text) {
    var output = "";
    for (var i = 0; i < text.length; i = i + 1) {
        if ((text.charAt(i) !== "a") && (text.charAt(i) !== "A") && (text.charAt(i) !== "e") && (text.charAt(i) !== "E") && (text.charAt(i) !== "i") && (text.charAt(i) !== "I") && (text.charAt(i) !== "o") && (text.charAt(i) !== "O") && (text.charAt(i) !== "u") && (text.charAt(i) !== "U")) {
            output += text.charAt(i) + "op";
        } else {
            output += text.charAt(i);  //rather than text.charAt[i];
        }
    }
    return output;
}

alert(opishConversion("aAbBcCdDeEfFgG"))

http://jsfiddle.net/8rrd9p9j/2/

答案 2 :(得分:0)

chatAt()是一个函数,所以你不应该使用方括号

text.charAt(i);

答案 3 :(得分:0)

以上所有答案都将解决您遇到的问题。但是,我还建议您通过在for循环之前将文本更改为小写来简化逻辑。

http://jsfiddle.net/tr9qpqe8/

function opishConversion(text) {
  var output = '';
  var text = text.toLowerCase();

  for (var i = 0; i < text.length; i++) {
    if ((text.charAt(i) !== "a") || (text.charAt(i) !== "e") || (text.charAt(i) !== "i") || (text.charAt(i) !== "o") || (text.charAt(i) !== "u")) {
      output += text.charAt(i) + "op";
    } else {
      output += text.charAt(i);
    }
  }

  return output;
}

var text = prompt("Enter Text To Convert");
alert(opishConversion(text));