搜索数组并编制已找到和未找到的单词的编号列表,Javascript

时间:2015-05-04 14:22:56

标签: javascript arrays list search

编写一个搜索数组中单词的应用程序,并创建一个新找到的单词数组和一个找不到的搜索单词数组。每次输入新单词时,应用程序都会显示已找到和未找到的单词的新数组。

提供的数组在我的代码中。我正在让列表工作,但我要回来的话都是“未定义的”。 (我在我的HTML中设置了表单)提示我缺少什么来获得“未定义”的结果?谢谢!

//Global variable for array
var wordsCollection = ["JavaScript", "was", "developed", "by", "Brendan", "Eich", "at", "Netscape", "as",
    "the", "in-page", "scripting", "language", "for", "Navigator", "2.", "It", "is", "a",
    "remarkably", "expressive", "dynamic", "programming", "language.", "Because",
    "of", "its", "linkage", "to", "web", "browsers", "it", "instantly", "became",
    "massively", "popular.", "It", "never", "got", "a", "trial", "period", "in", "which",
    "it", "could", "be", "corrected", "and", "polished", "based", "on", "actual", "use.",
    "The", "language", "is", "powerful", "and", "flawed."];    

function exercise11Part1() 
{
    var output;
    var exercises8form;
    var searchWord;
    var index = "";
    var valueFound = false;
    var foundWords = []; 
    var notFoundWords = [];
    var foundWordsList;
    var notFoundWordsList;

    exercises8form = document.getElementById("exercises8formId");

    searchWord = exercises8form.wordSearch.value;

    foundWordsList = document.getElementById("foundWordsListId");
    notFoundWordsList = document.getElementById("notFoundWordsListId");

    for (index = 0; index < wordsCollection.length; index++)
    {
        if (searchWord === wordsCollection[index])
        {
        valueFound = true;
        break;
        }
    }

    if (valueFound)
    {
        foundWords.push(wordsCollection[index]);
        foundWordsList.innerHTML += "<li>" + foundWords[index] + "</li>";
    }
    else
    {
        notFoundWords.push(wordsCollection[index]);
        notFoundWordsList.innerHTML += "<li>" + notFoundWords[index] + "</li>";
    }

    return false;
}

我仍然得到......不正确的输出。我错过了什么?

//Global variable for array
var wordsCollection = ["JavaScript", "was", "developed", "by", "Brendan", "Eich", "at", "Netscape", "as",
    "the", "in-page", "scripting", "language", "for", "Navigator", "2.", "It", "is", "a",
    "remarkably", "expressive", "dynamic", "programming", "language.", "Because",
    "of", "its", "linkage", "to", "web", "browsers", "it", "instantly", "became",
    "massively", "popular.", "It", "never", "got", "a", "trial", "period", "in", "which",
    "it", "could", "be", "corrected", "and", "polished", "based", "on", "actual", "use.",
    "The", "language", "is", "powerful", "and", "flawed."];    

var foundWords = []; 
var notFoundWords = [];

function exercise11Part1() 
{
    var exercises8form;
    var searchWord;
    var index = "";
    var valueFound = false;

    var foundWordsList;
    var notFoundWordsList;

    exercises8form = document.getElementById("exercises8formId");
    searchWord = exercises8form.enteredString.value;

    foundWordsListOutput = document.getElementById("foundWordsListId");
    notFoundWordsListOutput = document.getElementById("notFoundWordsListId");

    for (index = 0; index < wordsCollection.length; index++)
    {
        if (searchWord === wordsCollection[index])
        {
            foundWords.push(searchWord);
            foundWordsList += "<li>" + foundWords[index] + "</li>";
        }
        else
        {
            notFoundWords.push(searchWord); 
            notFoundWordsList += "<li>" + notFoundWords[index] + "</li>";
        }
    }

    foundWordsListOutput.innerHTML = foundWordsList; 
    notFoundWordsListOutput.innerHTML = notFoundWordsList;

    return false;
}

2 个答案:

答案 0 :(得分:0)

for (index = 0; index < wordsCollection.length; index++)
    {
        if (searchWord === wordsCollection[index])
        {
        valueFound = true;
          foundWords.push(wordsCollection[index]);
        }
        else
        {
          notFoundWords.push(wordsCollection[index]);
        }

    }
    for (word in foundWords){
       foundWordsList.innerHTML += "<li>" + foundWords[word] + "</li>";
    }
    for (word in notFoundWords){
       notFoundWordsList.innerHTML += "<li>" + notFoundWords[word] + "</li>";

    }

答案 1 :(得分:0)

尝试删除

if (valueFound)
{
    foundWords.push(wordsCollection[index]);
    foundWordsList.innerHTML += "<li>" + foundWords[index] + "</li>";
}

代替

if (searchWord === wordsCollection[index])
        {
        valueFound = true;
        break;
        }

if (searchWord === wordsCollection[index]) {
    foundWords.push(wordsCollection[index]);
    foundWordsList.innerHTML += "<li>" + foundWords[index] + "</li>";
}