2013-07-03 18 views
-1

我想了解創建OO js函數的過程,我想用歐拉#1作爲示例http://projecteuler.net/problem=1。我希望閱讀能力超過優雅,所以請在這裏露面。 。 。如果可能的話,有人請將我的解決方案轉換爲面向對象或模塊化設計的解決方案? [我的印象是,如果它是模塊化的也是面向對象的。]我已經在http://jsfiddle.net/mcgraw73/wGFNK/設置了小提琴非常感謝。面向對象的Javascript函數歐拉項目#1

//array for holding all numbers 1 thru 1000 
var numArr = []; 

//array for holding multiples of 3 and 5 < 1000 
var divArr = []; 

//fill numArr[] 
function createArrayNums() { 
    for (var i = 1; i <= 999; i++) { 
     numArr[i] = i; 
     //console.log(i); 
    } 
} 

//go thru numArr, if any of the elements divided by 3 || 5 === 0 push those values into  divArr[] 
function createDivArray() { 
    var k; 
    for (var i = 0; i <= numArr.length; i++) { 
     if (numArr[i] % 3 === 0 || numArr[i] % 5 === 0) { 
      k = i; 
      divArr.push(k); 
      //console.log(k); 
     } 
    } 
} 

//run the functions that fill array's 
createArrayNums(); 
createDivArray(); 

//get the sum of the elements in divArr[] 
var sumOfMultiples = 0; 
for (var i in divArr) { 
    sumOfMultiples += divArr[i]; 
} 

//give me the answer 
alert("the sum of the multiples of 3 && 5 < 1000 = " + sumOfMultiples); 

//alert----> the sum of the multiples of 3 && 5 < 1000 = 233168 
+0

問題詢問碼一般是令人難以接受的和關閉。您應該嘗試自己轉換代碼,然後在出現問題時詢問更具體的問題。 – jbabey

+0

即時通訊不要求數組解析,或要求你解決這個問題 - 我特別要求我提供的代碼根據面向對象的設計範式進行安排。 – mcgraw

回答

2

小提琴這裏http://jsfiddle.net/XJepE/ 基本結構

var MyObject=(function(){ 
    var my_private vars; 
    function private_function(){ 
    } 
    return { 
      public_method: function(){ 
      }, 
      another_public_method: function(){ 
      } 
    }; 

})(); 
// call a method 
myObject.public_method(); 
+0

謝謝。這是完美的,我希望你在提供所有你添加的3行代碼的同時不必皺眉。非常感謝您的回答。 – mcgraw