2016-04-30 8 views
1

下のコードで渡された辺(数)で形状の型を調べることは、最初の添え字、三角形だけに行きます。アレイの側面のプロパティに?私はfilter,forEach、およびmapを使って試し、ウサギの穴に通しました。助けを前にありがとう。形の数を比較するために辺の数を比較するのに苦労します

var Shape = function(sides) { 
    this.sides = sides; 

    if (this.sides < 3 || typeof(this.sides) !== 'number'){ 
    this.sides = null; 
    } 
}; 
Shape.prototype.getType = function(sides){ 
    var shapes = [{type: "triangle", sides: 3}, {type: "quadrilateral", sides: 4}, {type: "pentagon", sides: 5}, {type: "hexagon", sides:6}, {type: "heptagon", sides: 7}, {type: "octagon", sides: 8}, {type: "nonagon", sides: 9}, {type: "decagon", sides: 10}]; 

    for (var i = 0; i < shapes.length; i++){ 
    console.log(shapes[i].sides); 
    var sideExists = shapes.indexOf(shapes[i].sides) > -1; 
    if (sides === sideExists){ 
     return shapes[i].type; 
    }else{ 
     return 'Could not determine type'; 
    } 
    } 
}; 
+0

私はあなたがそのような 'indexOf'を使用することができるとは思いません。 – Redu

答えて

0

ループは、形状の配列で両側に多くのこのような何かを側面パラメータを比較する必要があるように思われる:

Shape.prototype.getType = function(sides){ 
    var shapes = [{type: "triangle", sides: 3}, {type: "quadrilateral", sides: 4}, {type: "pentagon", sides: 5}, {type: "hexagon", sides:6}, {type: "heptagon", sides: 7}, {type: "octagon", sides: 8}, {type: "nonagon", sides: 9}, {type: "decagon", sides: 10}]; 

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

    if (sides === shapes[i].sides){ 
     return shapes[i].type; 
    } 
    } 

    return 'Could not determine type'; 
}; 
+0

ありがとうございました@フォルカレ、それは働いた、私はちょうど '辺の'ステートメント 'this.sides'にしなければならなかった..再びありがとう – gmatsushima

1

私はおそらくこのようにすることを好むだろう。

var Shape = function(sides) { 
 
    (sides < 3 || typeof sides !== 'number') ? this.sides = 0 : this.sides = Math.floor(sides); 
 
}; 
 

 
Shape.prototype.getType = function(){ 
 
    var shapes = {0: "not defined shape", 3: "triangle", 4: "quadrilateral", 5: "pentagon", 6: "hexagon", 7: "heptagon", 8: "octagon", 9: "nonagon", 10: "decagon"}; 
 
    return shapes[this.sides]; 
 
} 
 

 
var square = new Shape(7); 
 
document.write("<pre> I am a " + square.getType() + "</pre>");

関連する問題