2011-12-19 123 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();