Map in Arrays in ECMAScript

Create new Javascript file named product.js. This file contains code demo as below:

class Product {

    constructor(id, name, price, quantity) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.quantity = quantity;
    }

    toString() {
        return 'Id: ' + this.id + '\nName: ' + this.name + '\nPrice: ' + this.price + '\nQuantity: ' + this.quantity;
    }

    total() {
        return this.price * this.quantity;
    }

}

module.exports = Product;




Create new Javascript file named index.js. This file contains code demo as below:

let Product = require('./product');

let product1 = new Product("p01", "name 1", 4, 2);
let product2 = new Product("p02", "name 2", 11, 3);
let product3 = new Product("p03", "name 3", 7, 8);

let products = [product1, product2, product3];

let result1 = products.map(p => p.price * p.quantity)
                        .reduce((p, q) => p + q);
console.log('Result 1: ' + result1);

let result2 = products.filter(p => p.price > 5)
                        .map(p => p.price * p.quantity)
                        .reduce((p, q) => p + q);
console.log('Result 2: ' + result2);

Use node index.js statement run code demo

Result 1: 97
Result 2: 89