【问题标题】:Javascript CharAt method doesnt work for a stringJavascript CharAt 方法不适用于字符串
【发布时间】:2013-12-15 11:18:22
【问题描述】:
var teksts= (document.getElementById("teksts").value);
letter=document.getElementById("letter").value;
var results = teksts.split(" ");
document.getElementById("1").innerHTML = results
var count = new Array
for(var i=0; i<results.length; i++)
      {
var first= new String (results[i])    
    for (var j=0; j<first.length; j++)
   {if (first.CharAt(j)==letter)
       {count [i]++}
      }

我在 Javascript 中有这段代码,它应该从 HTML 中读取一个字符串和一个字母,然后找出哪个单词中的此类字母最多。所以我尽量保持简单,将字符串拆分为一个数组,将每个数组元素定义为一个字符串,然后循环遍历每个字母,如果是要求的字母,将其标记在 count 数组中.

问题是,即使我明确定义单词(在变量中首先)应该是一个字符串,然后尝试使用 CharAt 方法来获取特定的符号,我得到一个错误“Uncaught TypeError: Object [object String] 没有方法 'CharAt' "

以我所有的谷歌搜索技能,我无法理解为什么该方法对我不起作用。

【问题讨论】:

  • 方法名是charAt,不是CharAt
  • “用我所有的谷歌搜索技能”,前 10 个点击显示“charAt”。哦,等等,接下来的十亿次点击也是如此。
  • 我认为所有标准的 Javascript 方法都遵循这种命名风格。第一个单词以小写字母开头,所有其他单词以大写字母开头。

标签: javascript string charat


【解决方案1】:
  1. 方法名是charAt不是CharAt,注意小c
  2. 建议 1:var count = new Array 应该是 var count = []; 最好像这样创建空数组,因为 Array 在运行时可以是任何东西,因为它可以被覆盖。
  3. 建议 2:最好在 javascript 中用;(分号)标记行尾。

【讨论】:

  • #2 应该是var count = [];。不要使用new 创建空数组或对象,使用文字。
  • @Barmar 知道了 :) 更新了答案。谢谢:)
  • 谢谢。这都是我的错。我总是忘记 Javascript 是区分大小写的,所以我没有注意到在谷歌结果中该方法是 charAt 而不是 CharAt。如果没有你们向我指出,我可能会因为这样一个简单的错误而被困几个小时。 :)
  • @user3104219 不客气 :) 如果对您有帮助,请考虑接受这个答案,meta.stackexchange.com/a/5235/235416
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
  • 2013-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-03
相关资源
最近更新 更多