2011-12-19 49 views
0

我是新的JavaScript和我有了解信息,從設定到一個數組的外部記錄如何得到掙扎。我希望有人能告訴我我做錯了什麼。我剛剛起步,並沒有在編碼世界學到很多東西,所以下面是很枯燥的骨頭。任何幫助表示讚賞!插入記錄數組中的JavaScript(介紹到JavaScript的學生)

這是應該發生的情況:

  • 打開recordset
  • 遍歷recordset
  • 對於在recordset
    • 循環每條記錄通過arrayZipCode[]
    • 如果郵政編碼是獨一無二的,加到arrayZipCode[]
  • 輸出arrayZipCode在HTML

這裏是我的代碼(這一切都來的雜草後,我進入記錄集):

// Declare global variables 
var arrayZipCode = []; // Array 
var zipCodeRecords; // Access to database 
var index; // This is to capture the array slots and count loops 
var displayResults; // Reference to list set up from HTML 
var zipCode; // value of zip code 
var valueFound; // boolean 

// Set loop values 
index = 0; 

// Set display to reference html page 
var displayResultsAs; 




// Open the record set 
function initializeZipCodeRecords() { 
    zipCodeRecords = openZipCodeStudyRecordSet(); 
} 

// Loop through the record set 
function readNextZipCodeRecord() { 
    while (zipCodeRecords.readNextRecord()) { 
     zipCode  = zipCodeRecords.getSampleZipCode(); 

     // For each record in the recordset: 
      // Loop through arrayZipCode 
      // If zip code is unique, add to arrayZipCode 
      // Output arrayZipCode in HTML 
     if (arrayZipCode[arrayZipCode.length] = 0) { 
      arrayZipCode[index] = zipCode; 
     } else { 
      while (index < arrayZipCode.length) { 


// The results in alert are ALL codes, not only unique codes. Why? 
       if (zipCode !== arrayZipCode[index]) { 
        arrayZipCode[index] += zipCode; 
       // alert(arrayZipCode + "-" + arrayZipCode.length); // Interesting results (75213,91343,10024-3) 
       } 
       index ++; 
      } 

     } 

    } 
} 

function displayUniqueZipCodeList() { 
    // Not working; moved to main module 

} 

/* 
    Main Function Module 
*/ 
function project5Part1() { 
    initializeZipCodeRecords(); 
    readNextZipCodeRecord(); 

    displayResults = document.getElementById("displayResultsId"); 
    displayResults.innerHTML += "<li>"; 
      + arrayZipCode[index] 
      + "</li>"; 
+0

作業...... – 2011-12-19 17:00:32

+0

@Felix我想是這樣 「(介紹到JavaScript的學生)」 – hunter 2011-12-19 17:01:00

回答

0

使用JavaScript indexOf方法和push方法

if (array.indexOf(value) == -1) 
    array.push(value); 

indexOf

返回可以在數組中找到給定元素的第一個索引,如果不存在則返回-1。

push

來Mutate通過附加給定的元素並返回數組的新長度的數組。相對於其他語言時

+0

沒錯?這是一個家庭作業問題。我還沒有理解數組如何填充。可以理解的是,我找到的所有示例都顯示了數組中的文字。 @hunter,我認爲(價值)是我把我的「zipCode」變量的地方。它是否正確? – user1106321 2011-12-19 17:07:55

+0

是的,'value'就是你的'zipCode' – hunter 2011-12-19 17:09:47

0

其實在Javascript事情簡單。在簡單的Javascript(無框架)中,記錄通常以對象數組的形式處理。下面我給出了你需要的簡單示範。 你可以看到它在這裏工作:http://jsfiddle.net/diode/mxwUZ/4/

// Declare global variables 

// Array of records retrieved from Database 
var zipCodeRecords; 

// Object for storing zip codes. Using Object avoids looping and searching 
var zipCodesObject = {}; 


function openZipCodeStudyRecordSet(){ 

    // Array of records retrieved from database. 
    // Below this function returns sample array of records 

    return [ 

     {name:"name1", age:"32", zip_code:"345678"}, 
     {name:"name2", age:"42", zip_code:"232323"}, 
     {name:"name3", age:"27", zip_code:"323232"}, 
     {name:"name4", age:"19", zip_code:"543534"}, 
     {name:"name5", age:"31", zip_code:"323232"}, 
     {name:"name6", age:"56", zip_code:"344234"}, 
     {name:"name7", age:"43", zip_code:"5646456"}, 
     {name:"name8", age:"67", zip_code:"6756765"}, 
     {name:"name9", age:"48", zip_code:"6565"}, 
     {name:"name10", age:"49", zip_code:"345678"}, 

    ]; 
} 


// Open the record set 
function initializeZipCodeRecords() { 
    zipCodeRecords = openZipCodeStudyRecordSet(); 
} 

// Loop through the record set 
function readRecords() { 

    for(var i = 0; i < zipCodeRecords.length; i++){ 

     var zipCode  = zipCodeRecords[i]["zip_code"]; 

     // Set the zip code as property of zipCodesObject. This avoids duplicates. 
     zipCodesObject[zipCode] = true; 

    } 


} 


/* 
    Main Function Module 
*/ 
function project5Part1() { 

    initializeZipCodeRecords(); 
    readRecords(); 

    var displayResults = document.getElementById("displayResultsId"); 

    // Loop through zipCodesObject and add list element 
    for(var zipcode in zipCodesObject){ 
     displayResults.innerHTML += ("<li>" + zipcode + "</li>"); 
    } 

} 


project5Part1();