2013-12-15 52 views
-1
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數組。Javascript CharAt方法不適用於字符串

問題是,即使我特別定義(變量第一)字應該是一個字符串,然後嘗試使用CharAt方法來獲取特定的符號,我得到一個錯誤「Uncaught TypeError:Object [對象字符串]沒有方法'CharAt'「

我不能用我所有的使用Google搜索技巧來理解爲什麼該方法不適用於我。

+2

該方法的名稱是'charAt',而不是'CharAt'。 – Barmar

+0

「我的所有Google搜索技巧」,前10個點擊顯示「charAt」。哦,等等,接下來的十幾個點擊也是。 – usr2564301

+1

我認爲所有標準的Javascript方法都遵循這種命名風格。第一個單詞以小寫字母開頭,所有其他單詞以大寫字母開頭。 – Barmar

回答

1
  1. 方法名是charAtCharAt,注意小c
  2. 建議1:var count = new Array應該已經var count = [];它總是最好創建空數組喜歡這一點,因爲Array可以在運行時任何東西,因爲它可以覆蓋。
  3. 建議2:在javascript中標記以;(分號)結尾的行是一個好習慣。
+1

#2應該是'var count = [];'。不要使用'new'來創建空的數組或對象,請使用文字。 – Barmar

+0

@Barmar明白了:)更新了答案。謝謝:) – thefourtheye

+0

謝謝。是我的錯。我總是忘記,JavaScript區分大小寫,所以我沒有注意到,在谷歌結果方法是charAt不CharAt。沒有你們向我指出,我可能會因爲這樣一個簡單的錯誤而停留數小時。 :) – Reinis

相關問題