2013-11-30 3 views
0

Я заметил, что FireFox сообщает об ошибке в моем коде, но не может понять, что не так.Я не понимаю эту ошибку подстроки

[13:36:02.868] TypeError: arr[i][0].substring is not a function @ file:///home/asdf/Desktop/app/dic.js:10

Который, кажется, указывает на переменную строку ss. AFAIK, я использую его правильно (т.е. в конце строки). Здесь приведен фрагмент кода ...

// quick array example... 
var arr = [ 
["tammikuuta", "January"], 
["helmikuuta", "February"], 
["maaliskuuta", "March"] 
]; 

function userInput(val){ 

var result = document.getElementById('result'); 
result.innerHTML = ''; 

if(val && val.length > 2){ 
    for(var i = 0; i < arr.length; i++){ 
     var ss = arr[i][0].substring(0,val.length); // ss (SubString) checks the number of characters currently typed 
     if(ss.toLowerCase() !== val.toLowerCase()){ // check substring against the user input 
      continue; 
     } 
     else { // display the output... 
      var res = arr[i][1]; 
      var reg = eval('/'+val+'/i'); 
      var found = arr[i][0].replace(reg, '<span class="r">$&<\/span>'); 
      if(result.innerHTML.length > 0){ 
       result.innerHTML += ',<br />'; 
      } 
      result.innerHTML += found + '<b>' + ' > ' + '</b>' + '<span class="g">' + res + '<\/span>'; 
     } 
    } 
} 
else {return;} 
} 

Прошу совета?

Отредактировано: добавлен еще код.

+1

вы пытались обр [я] [0] .ToString() подстрока (0, val.length). И что содержит ваш массив? –

+1

'arr [i] [0]' просто не содержит строки. И если это не строка, у нее не будет метода 'substring'. –

+1

Мы не можем помочь, если вы не покажете нам, что такое 'arr'. – nnnnnn

ответ

2

попробовать это

var ss = arr[i][0].toString() 
ss = ss.substring(0,val.length); 
+0

Я получаю TypeError: ss.substring не является функцией – Leke

+0

add .tostring() после массива, а затем попробуйте –

+2

Это почти хуже. Не просто слепо называть 'toString' на объекте, который, как вы ожидали, является строкой. Это не развивается, думая, это угадывает и надеется, что это как-то сработает. –

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