2016-10-01 2 views
-2

Я очень новичок в Javascript, и я мог бы использовать некоторые способы устранения неполадок. В журнале консоли сказано, что «верхний» и «словосочетание» не определены. Цель этой функции состоит в том, чтобы перебрать массив, полученный из inputdiv, и спросить, присутствует ли значение массива в этом массиве, AND НЕ присутствует в массиве «wordcount», а если нет, то нажать.Массив не определен, но я определил их как переменные

function processtext() { 
    var textindiv = document.getElementById("inputdiv").innerHTML; 
    var split = textindiv.split(" "); 
    var upper = []; 
    var wordcount = []; 
    for (var i = 0; i < split.length; ++i) { 
    upper.push(split[i].toUpperCase()); 
    } 
    var sortedlist = upper.sort(); 
    var wordcount = new Array; 

    for (var i = 0; i < sortedlist.length; ++i) { 
    if (sortedlist.indexOf(sortedlist[i]) > -1) { 
     if (wordcount.indexOf(sortedlist[i]) == -1) { 
     wordcount.push(sortedlist[i]); 
     } 
    } 
    } 
} 
console.log(upper); 
console.log(wordcount); 
+2

[Какова область видимости переменных в JavaScript?] (Http://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript) – undefined

+2

Кстати, 'if (sortedlist.indexOf (sortedlist [i])> -1) 'всегда будет' true';) – Robiseb

ответ

2

Переменные определяются в функции не глобально.

Вы можете либо переместить операторы console.log в функцию, либо переместить объявления переменных из функции.