2014-01-21 2 views
-1

Я просто просматриваю вопросы, и я делал подсчет гласных. Это моя программадлина массива в Javascript

 function VowelCount(str) { 
     var count=0; 
     str=str.toLowerCase(); 
     var split=str.split(""); 
     // code goes here 
     for(var i=0;i<split.length();i++){ 
     if(split[i]=="a"||split[i]=="e"||split[i]=="i"||split[i]=="o"||split[i]=="u") 
     { 
     count++;} 
     } 
     return split; 

} 

Я получаю ошибку TypeError: Property 'length' of object [object Array] is not a function Почему мой код не так? Кажется, я не понимаю.

+1

Удалите brakets после длины;) – Igle

+4

'length' не является функцией/метод, но просто свойство. Вместо этого используйте 'split.length'. – Gumbo

+0

длина() не является функцией! –

ответ

3

Две ошибки

var split=str.split(""); 
    ^  ^
  1. split является метод и вы назвали переменную, в одной и той же линии
  2. length является свойством, она должна быть .length, а не .length()

    var pieces=str.split(""); 
    for(var i=0;i<pieces.length;i++){ 
    
+0

Использование переменной name split не испортило ничего. Он отлично работал, только меняя длину .length() на .length. Я думаю, я не должен был называть его одинаковым, хотя –

+1

Даже если это не так, это неправильная практика и приводит к написанию плохих кодов. Не следует использовать собственные термины языка как переменные, если этого можно избежать. Попробуйте это на другом языке, и это будет проблемой. –

2

просто использовать

split.length; 

вместо

split.length(); 
+2

Спасибо, что исправил его. На самом деле глупое меня * facepalm * –

Смежные вопросы