2015-06-18 73 views
1

我有一個練習,我不明白,所以我希望對此有所幫助。Javascript模塊模式與陣列

我要硬編碼一個簡單的數組和鍛鍊告訴我這一點:

通常,當我們創建Web應用程序,我們有測試數據的需要。實現的可重複使用的NodeJS模塊,使用JavaScript的模塊的模式,其可以提供隨機測試數據如以下簡述:

var data = dataGenerator.getData(100,"fname, lname, street, city, zip"); 

這應該與表單100的測試數據返回一個JavaScript陣列(未JSON):

[{fname: "Bo", lname:"Hansen", street: "Lyngbyvej 26", city: "Lyngby", zip: "2800"},..] 

如果你這樣稱呼它:

var data = dataGenerator.getData(25,fname, lname); 

它應該返回25個的測試數據,下面簡述:

[{fname: "Bo", lname:"Hansen"},..] 

我這裏有一些代碼,但這這麼想的工作尚未:

var dataGenerator = (function() { 
var data = [ 
    { 
     fname : "Bo", 
     lname : "Bosen", 
     ... 
    }, 
    { 
     fname : "jashkjh", 
     lname : "jhsdkfj", 
     ... 
    }, 
    ... 
]; 

return {getData : function (count, fields) { 
    var result = []; 
    var i = 0; 
    var field; 
    var j; 


    fields = fields.split(/\s*,\s*/); 


    while (i < count && i < data.length) { 

     result.push({}); 

     // Det objekt vi arbejder på lige nu er i result[i] 
     for (j = 0; j < fields.length; j++) { 

      result[i][fields[j]] = data[i][fields[j]]; 
     } 

     i++; 
    }  

    return result; 
}}; 
})(); 

module.exports = dataGenerator; 
+3

Stackoverflow通常是一個不好的地方尋求幫助作業。然而,如果你確實需要幫助,你應該解釋你所知道的,你嘗試過的以及你不瞭解的。 –

+0

我同意,但現在我不指望人們爲我編寫所有的代碼,但可以向正確的方向提供一點提示。 –

+1

那麼你的障礙是什麼?如何編寫node.js模塊?如何實現dataGenerator本身?請先顯示一些努力。 – pawel

回答

0

我不知道數據的身體,但可以嘗試:

var data=[{fname:"Bo",lname:"Bosen",street:"Lyngbyvej 26",city:"Lyngby",zip:"2800"},{fname:"jashkjh",lname:"jhsdkfj",street:"Fmsn 9",city:"Pra",zip:"1600"},{fname:"eeee",lname:"aaaa",street:"Eda 5",city:"Pre",zip:"3500"}]; 
 

 
var dataGenerator = { 
 
\t getData: function(count, fieldsStr){ 
 
\t \t var result = [], fields = fieldsStr.split(/\s*,\s*/), i = 0; 
 

 
\t \t while(i < count && data[i]){ 
 
\t \t \t var item = {}; 
 

 
\t \t \t fields.forEach(function(key){ 
 
\t \t \t \t item[key] = data[i][key] 
 
\t \t \t }); 
 

 
\t \t \t result.push(item); 
 

 
\t \t \t i++ 
 
\t \t } 
 
\t \t return result 
 
\t } 
 
} 
 

 
var results = dataGenerator.getData(2,"fname, zip"); 
 
document.write(JSON.stringify(results))

+0

謝謝,它的工作,現在我可以玩一點。欣賞它! –