zoukankan      html  css  js  c++  java
  • JavaScript数据结构与算法-数组练习

    一. 创建一个记录学生成绩的对象,提供一个添加成绩的方法,以及一个显示学生平均成绩的方法。

    // 创建一个记录学生成绩的对象
    const Students = function Students () {
        this.grades = [];
        this.addGrage = addGrade;
        this.getAverage = getAverage;
    };
    // 提供一个添加成绩的方法
    function addGrade (grade) {
        this.grades.push(grade);
    }
    // 以及一个显示学生平均成绩的方法
    function getAverage () {
        let total = 0;
        let len = this.grades.length;
        while (len--) {
            total += parseInt(this.grades[len], 10);
        }
        return total / this.grades.length;
    }
    // 示例
    let Mazey = new Students();
    Mazey.addGrage(90);
    Mazey.addGrage(91);
    Mazey.addGrage(87);
    Mazey.addGrage(99);
    Mazey.addGrage(89);
    Mazey.addGrage(85);
    Mazey.addGrage(92);
    console.log(Mazey.getAverage());
    

    二. 将一组单词存储在一个数组中,并按正序和倒序分别显示这些单词。

    // 将一组单词存储在一个数组中
    let arr = [`Mazey`, `Cherrie`, `John`, `Ada`, `Chole`];
    // 正序
    console.log(arr.sort());
    // 倒序
    console.log(arr.sort().reverse());
    

    三. 创建一个对象,使用一个二维数组来存储每月的有用数据,增加一些方法用以显示月平均数,具体某一周平均数和所有周的平均数。

    const MonthData = function MonthData () {
        // 初始化月数据
        this.monthData = (function () {
            let arr = [];
            let week = 4;
            let day = 7;
            while (week--) {
                arr[week] = [];
                while (day--) {
                    arr[week][day] = 0;
                }
                day = 7;
            }
            console.log(arr);
            return arr;
        })();
        this.addData = addData;
        this.getMonthAverage = getMonthAverage;
        this.getWeekAverage = getWeekAverage;
        this.getAllWeekAverage = getAllWeekAverage;
    };
    function addData (week, day, data) {
        this.monthData[week][day] = data;
    }
    function getMonthAverage () {
        let arr = this.monthData,
            total = 0,
            day = 0;
        for (let i = 0; i < arr.length; i++) {
            for (let j = 0; j < arr[i].length; j++) {
                total += parseInt(arr[i][j], 10);
                day++;
            }
        }
        return total / day;
    }
    function getWeekAverage (week) {
        let arr = this.monthData[week],
            total = 0;
        for (let i = 0; i < arr.length; i++) {
            total += parseInt(arr[i], 10);
        }
        return total / arr.length;
    }
    function getAllWeekAverage () {
        let self = this,
            week = this.monthData.length,
            total = (function () {
                let total = 0;
                for (let i = 0; i < week; i++) {
                    total += self.getWeekAverage(i) * self.monthData[i].length
                }
                return total;
            })();
            return total / week;
    }
    // 示例
    let Mazey = new MonthData();
    Mazey.addData(0, 1, 100);
    Mazey.addData(0, 2, 100);
    Mazey.addData(0, 3, 100);
    Mazey.addData(0, 4, 100);
    Mazey.addData(1, 6, 7);
    console.log(Mazey.getMonthAverage());
    console.log(Mazey.getWeekAverage(0));
    console.log(Mazey.getWeekAverage(1));
    console.log(Mazey.getAllWeekAverage());
    

    四. 创建这样一个对象,它将字母存储在一个数组中,并且用一个方法可以将字母连在一起,显示成一个单词。

    const Letter = function Letter () {
        this.characters = [];
        this.addCharacter = addCharacter;
        this.toLetter = toLetter;
    };
    function addCharacter (character) {
        this.characters.push(character);
    }
    function toLetter () {
        return this.characters.join(``);
    }
    // 示例
    let Mazey = new Letter();
    Mazey.addCharacter(`m`);
    Mazey.addCharacter(`a`);
    Mazey.addCharacter(`z`);
    Mazey.addCharacter(`e`);
    Mazey.addCharacter(`y`);
    console.log(Mazey.toLetter()); // mazey
    

    JavaScript数据结构与算法-数组练习

  • 相关阅读:
    ERROR Function not available to this responsibility.Change responsibilities or contact your System Administrator.
    After Upgrade To Release 12.1.3 Users Receive "Function Not Available To This Responsibility" Error While Selecting Sub Menus Under Diagnostics (Doc ID 1200743.1)
    产品设计中先熟练使用铅笔 不要依赖Axure
    12.1.2: How to Modify and Enable The Configurable Home Page Delivered Via 12.1.2 (Doc ID 1061482.1)
    Reverting back to the R12.1.1 and R12.1.3 Homepage Layout
    常见Linux版本
    网口扫盲二:Mac与Phy组成原理的简单分析
    VMware 8安装苹果操作系统Mac OS X 10.7 Lion正式版
    VMware8安装MacOS 10.8
    回顾苹果操作系统Mac OS的发展历史
  • 原文地址:https://www.cnblogs.com/mazey/p/8322345.html
Copyright © 2011-2022 走看看