美文网首页
JavaScript练习题

JavaScript练习题

作者: e20a12f8855d | 来源:发表于2018-11-13 16:02 被阅读1次
    1. 字符串的操作

    给定一个字符串 "qwertyuiop123445pqqQq",问题如下:

    • a. 字符串的长度;
    • b. 取出指定位置的字符,如: 0,3,5,9 等;
    • c. 查找指定字符是否在以上字符串中存在;
    • d. 替换指定的字符,如:q 替换为 22;
    • e. 截取指定开始位置到结束位置的字符串,如:取得 1-5 的字符串;
    • f. 找出以上字符串中出现次数最多的字符和出现的次数;
    • g. 遍历字符串,并将遍历出的字符两头添加符号“@”输出。

    解析:

    a. 字符串的长度

    console.log(str.length);  // 21
    

    b. 取出指定位置的字符,如: 0,3,5,9 等

    console.log(str[0], str[3], str[5], str[9]);  // q r y p
    

    c. 查找指定字符是否在以上字符串中存在
    indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置
    如果没有找到该字符串,就返回-1

    function haveOr(s) {
        if (str.indexOf(s) == -1) {
            console.log("该字符不存在");
        } else {
            console.log("该字符存在");
        }
    }
    haveOr("s") // 该字符不存在
    haveOr("q") // 该字符存在
    

    d. 替换指定的字符,如:q 替换为 22
    replace() 方法用于在字符串中用一些字符替换另一些字符
    或替换一个与正则表达式匹配的子串

    // 只替换第一个匹配的字符
    console.log(str.replace('q', '22')); // 22wertyuiop123445pqqQq
    
    // 替换所有匹配的字符串
    console.log(str.replace(/\q/g, '222')); // 222wertyuiop123445p222222Q222
    

    e. 截取指定开始位置到结束位置的字符串,如:取得 1-5 的字符串
    slice() 方法可从已有的数组中返回选定的元素

    console.log(str.slice(1, 5)); // wert
    

    f. 找出以上字符串中出现次数最多的字符和出现的次数

    var arrStr = str.split(""); // 将字符串转换为数组
    
    // 便历转换得到的数组,把数组中每个元素对应出现的个数计算出来
    var newArr = [];
    for (var i = 0; i < arrStr.length; i++) {
        if (newArr[arrStr[i]]) {
            newArr[arrStr[i]] += 1;
        } else {
            newArr[arrStr[i]] = 1;
        }
    }
    // 便历存放数组元素个数的数组,将出现次数最多的元素及出现次数循环出来
    var mostStr = ""; // 出现最多的元素
    var mostNum = 1; // 出现的个数
    for (var k in newArr) {
        if (newArr[k] > mostNum) {
            mostNum = newArr[k];
            mostStr = k;
        }
    }
    console.log("出现次数最多的元素是:" + mostStr + ";" + "出现" + mostNum + "次"); // 出现次数最多的元素是:q;出现4次
    

    g. 遍历字符串,并将遍历出的字符两头添加符号“@”输出

    var strArr = str.split("")
    var newStr = "";
    for (var i = 0; i < strArr.length; i++) {
        var newChar = "@" + strArr[i] + "@;";
        newStr += newChar
    }
    console.log(newStr); // @q@;@w@;@e@;@r@;@t@;@y@;@u@;@i@;@o@;@p@;@1@;@2@;@3@;@4@;@4@;@5@;@p@;@q@;@q@;@Q@;@q@;
    

    1. 日期对象的操作

    根据当前日期进行以下方面的处理:

    • a. 取得日期的年份、月份、天、时、分、秒,并转换成大写日期格式如 : 2018年11月14日14时40分20秒。
    • b. 根据日期的不同时间段,做问候语:
      早上 8:00-12:00 : “早上好!”
      中午 12:00-14:00 :“中午好!”
      下午 14:00-18:00 :“下午好!”
      晚上 19:00-00:00 :“晚上好!”
    • c. 计算当前时间向前、向后(一天、一个月)的日期,并取出是星期几。

    解析:

    a. 取得日期的年份、月份、天、时、分、秒,并转换成大写日期格式如 : 2018年11月14日14时40 分20秒
    b. 根据日期的不同时间段,做问候语:
    早上 8:00-12:00 : “早上好!”
    中午 12:00-14:00 :“中午好!”
    下午 14:00-18:00 :“下午好!”
    晚上 19:00-00:00 :“晚上好!”

    function getDate() {
        var dateTime = new Date();
        var year = dateTime.getFullYear();
        var month = dateTime.getMonth() + 1;
        var date = dateTime.getDate();
        var hours = dateTime.getHours();
        var minutes = dateTime.getMinutes();
        var seconds = dateTime.getSeconds();
        var day = dateTime.getDay();
        var dateStr = year + "年" + month + "月" + date + "日" + hours + "时" + minutes + "分" + seconds + "秒";
    
        var dateDom = document.getElementById("date");
        dateDom.innerHTML = dateStr;
    
        var greetings = "";
        var message = document.getElementById("message");
        if (hours >= 8 && hours < 12) {
            greetings = "早上好!";
        } else if (hours >= 12 && hours < 14) {
            greetings = "中午好!";
        } else if (hours >= 14 && hours < 18) {
            greetings = "下午好!";
        } else {
            greetings = "晚上好!";
        }
        message.innerHTML = greetings;
    }
    setInterval("getDate()", 100);
    
    

    c. 计算当前时间向前、向后(一天、一个月)的日期,并取出是星期几。

    var dateTime2 = new Date();
    dateTime2.setDate(dateTime2.getDate() - 1);
    var year2 = dateTime2.getFullYear();
    var month2 = dateTime2.getMonth() + 1;
    var date2 = dateTime2.getDate();
    var day2 = dateTime2.getDay();
    var weekArr = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
    
    console.log("前一天是" + year2 + "年" + month2 + "月" + date2 + "日" + weekArr[day2]);
    

    1. 执行数学任务

    建立两个函数,一个函数是中学二次函数(y= (2/5)x^2 + (9/10)x - 15 )表达式的计算方法;
    另一个函数是给定任意的若干个 x 值,调用前一个函数计算 y 对应的值,并使用( x,y)方式输出每个值得计算结果计算结果。

    function quadraticFun(x) {
        this.x = x;
        return y = ((2 / 5) * Math.pow(x, 2) + (9 / 10) * x - 15);
    }
    console.log(quadraticFun(10));  // 34
    
    function dyFun(arr) {
        for (var i = 0; i < arr.length; i++) {
            console.log("(" + arr[i] + "," + quadraticFun(i) + ")");
        }
    }
    dyFun([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
    
    // (0,-15)
    // (1,-13.7)
    // (2,-11.6)
    // (3,-8.7)
    // (4,-5)
    // (5,-0.5)
    // (6,4.800000000000001)
    // (7,10.900000000000002)
    // (8,17.800000000000004)
    // (9,25.5)
    // (10,34)
    

    1. 使用二重循环打印九九乘法表
    for (var i = 1; i <= 9; i++) {
        for (var j = 1; j <= i; j++) {
            document.write(i + "*" + j + "=" + i * j + " ");
        }
        document.write("<br>")
    }
    

    未完待续......


    期待您的关注!

    相关文章

      网友评论

          本文标题:JavaScript练习题

          本文链接:https://www.haomeiwen.com/subject/czdlfqtx.html