2017-01-12 60 views
-2

我需要創建一個腳本,但我不知道如何完成它。 這就是我要做的:JavaScript默認構造函數|數組| |循環

(1)寫一個類箱子。這個類有一個默認的構造函數和一個名爲boxes的空數組。

還具有這類3種方法:

1)插入添加方法把盒進入盒陣列。 2)插入方法大小以獲得數組的實際大小。 3)插入toString方法,給一個字符串返回顏色和音量。

(2)繼續在init函數:

2.3匝周圍的每一個對象上的環從所述陣列對象將其添加到陣列盒

2.4作出toString方法回饋每對象從一個HTML P標籤中的數組中獲取。

我希望這對你們有意義,如果有人能幫助我,這將是一個很大的幫助!

非常感謝!

更新:我編輯了我現在擁有的代碼。

window.addEventListener("load", init, false); 

function init() { 
    // (2.1) 
    let object1 = new Box(20, 8, 3, "white"); 
    let object2 = new Box(30, 20, 10, "Brown"); 
    let object3 = new Box(50, 40, 20); 
    // (2.2) 
    let boxes = new Boxes(); 
    // (2.3) 
    boxes.push(object1); 
    boxes.push(object2); 
    boxes.push(object3); 
    // 2.4 
    var str="" 
    for (let i = 0 ; i < boxes.size() ; i++){ 
     str += "<p>"+boxes.toString(i)+"<p>" 
    } 

} 

class Box { 
    constructor(length, width, height, color = "blue") { 
     this.length = length; 
     this.width = width; 
     this.heigt = height; 
     this.color = color; 
    } 

    volume() { 
     return this.length * this.width * this.height; 
    } 

    toString() { // String templates 
     return `Volume: ${this.volume()} --- Kleur: ${this.color}`; 
    } 
} 

// (1) class Boxes 
class Boxes { 
    constructor(){ 
     this.boxes = []; 
    } 

    add(Box){ 
     this.boxes.push(Box); 
    } 

    size(){ 
     return this.boxes.length; 
    } 

    toString(i){ 
     this.boxes[i].toString(); 
    } 
} 
+1

SOOOO這是一所學校分配換貨? – mhodges

+0

你必須展示你的嘗試。你有什麼困難?只需複製別人的解決方案,對你幾乎沒有什麼幫助。 –

+0

我已經得到了javascript的考試tommorow。我想這是我會得到的一個參考。我已經嘗試使用構造函數(){},並且這就像我已經得到的那樣使用默認構造函數:) – ThomasP

回答

0

我不太得到什麼3)表示,所以我會假設你想獲得給定的索引(糾正我,如果我錯了)

class Boxes{ 
    //init property called boxes to an empty array when creating Boxes object 
    constructor(){ 
    this.boxes = []; 
    } 
    //return the length of the boxes 
    size(){ 
    return this.boxes.length; 
    } 
    //add a box by pushing it to the array 
    add(box){ 
    this.boxes.push(box); 
    } 
    //print the volume and color of a box given the index 
    toString(i){ 
    this.boxes[i].toString(); 
    } 
} 

的框顏色和體積對於2號:

//2.3 
//do you have to push the objects to object? 
//use this if you don't have to 
boxes.push(object1); 
boxes.push(object2); 
boxes.push(object3); 
//use this if you pushed your objects into an array called object 
objects.forEach(function(singleObject){ 
    boxes.push(singleObject); 
}); 

//2.4 
//Iterate every object in boxes and print out their volume and color 
//Do you have to create a P tag or just wrapped the string with <p></p>? 
//This answer assumes that you just wrap it with <p></p>. Correct me if I'm wrong 
var str = ""; 
//option 1 Using foreach loop 
boxes.boxes.forEach((singleBox){ 
    str += "<p>"+singleBox.toString()+"</p>"; 
}); 
//option 2 Using for loop 
for(var i = 0; i < boxes.size(); i++){ 
    str += "<p>"+boxes.toString(i)+"</p>"; 
} 
//now str contains every object's color and volume wrapped in P tag 

我會建議你去通過這個過程https://www.codecademy.com/learn/javascript

+0

感謝它不是很正確,但這絕對是一個很好的幫助和方向,我需要去。說實話,我發現我的老師提出的問題很怪異,不合邏輯。但非常感謝 – ThomasP

+0

Hi @ThomasP學習過程涉及到提問。所以如果你不明白你的老師給你的任何東西,你應該問!給這樣的任務是相當合理的。 –