Day 4: Classes | 10 Days Of JavaScript | HackerRank Solution

Hello coders, today we are going to solve Day 4: Classes HackerRank Solution which is a part of 10 Days of JavaScript Series.

Day 4: Classes

Objective

In this challenge, we practice using JavaScript classes.

Task

Create a Polygon class that has the following properties:

  • constructor that takes an array of integer values describing the lengths of the polygon’s sides.
  • perimeter() method that returns the polygon’s perimeter.

Locked code in the editor tests the Polygon constructor and the perimeter method.

Note: The perimeter method must be lowercase and spelled correctly.

Input Format

There is no input for this challenge.

Output Format

The perimeter method must return the polygon’s perimeter using the side length array passed to the constructor.

Explanation

Consider the following code:

// Create a polygon with side lengths 3, 4, and 5
let triangle = new Polygon([3, 4, 5]);

// Print the perimeter
console.log(triangle.perimeter());

When executed with a properly implemented Polygon class, this code should print the result of 3 + 4 + 5 = 12.

Solution – Day 4: Classes

/*
 * Implement a Polygon class with the following properties:
 * 1. A constructor that takes an array of integer side lengths.
 * 2. A 'perimeter' method that returns the sum of the Polygon's side lengths.
 */
class Polygon {

    constructor(sides) {
        this.sides = sides
    }
    perimeter() {
        return this.sides.reduce(function add(a, b) { return a + b; })
    }
}


const rectangle = new Polygon([10, 20, 10, 20]);
const square = new Polygon([10, 10, 10, 10]);
const pentagon = new Polygon([10, 20, 30, 40, 43]);

console.log(rectangle.perimeter());
console.log(square.perimeter());
console.log(pentagon.perimeter());

Disclaimer: The above Problem (Classes) is generated by Hacker Rank but the Solution is provided by CodingBroz. This tutorial is only for Educational and Learning Purpose.

Leave a Comment

Your email address will not be published. Required fields are marked *