JavaScript内置对象的练习

文章目录

  • 猜数字游戏
  • 倒计时算法的实现
  • 统计字符串中每个字母出现的次数
  • 将十进制的整数转换成给定数制格式输出

猜数字游戏

使程序随机生成一个1~10之间的数字,并让用户输入一个数字,判断这两个数的大小,如果用户输入的数字大于随机数,那么提示“你猜大了”,如果用户输入的数字小于随机数,则提示“你猜小了”,如果两个数字相等,就提示“恭喜你,猜对了”,结束程序。

function getRandom(min, max) {
     
    return Math.floor(Math.random() * (max - min + 1) + min)//确保生成的数字在1~10之间
}
var random = getRandom(1, 10)
while (true) {
     
    var num = prompt('猜数字,范围在1~10之间。')
    if (num > random) {
      
        alert('你猜大了')
    }else if (num < random) {
     
         alert('你猜小了') 
    }
    else {
      alert('恭喜你,猜对了'); break; }
}

倒计时算法的实现

<body onload="countDown('2021-06-14')">
    <span id="mydate" style="color: red;font-size: 35px;"> span>
body>
//输入的时间减去现在的时间,得出的剩余时间就是要显示的倒计时时间
//把时间都转化成时间戳(毫秒数)来进行计算
function countDown(time) {
     
   var nowTime = +new Date()//获取当前时间
   var inputTime = +new Date(time)//创建给定日期时间对象
	//使用'+'运算符转换为数值型 单位为毫秒(ms)
   var times = (inputTime - nowTime) / 1000  //转化为秒(m)
   var d = parseInt(times / 60 / 60 / 24)
       d = d < 10 ? '0' + d : d
   var h = parseInt(times / 60 / 60 % 24)
       h = h < 10 ? '0' + h : h
   var m = parseInt(times / 60 % 60)
       m = m < 10 ? '0' + m : m
   var s = parseInt(times % 60)
       s = s < 10 ? '0' + s : s
   //return d + '天' + h + '时' + m + '分' + s + '秒'
   var str=d + '天' + h + '时' + m + '分' + s + '秒' 
   //通过id获取页面中span标签,将倒计时字符串放入该标签中
 document.getElementById('mydate').innerHTML = str
   //调用setTimeout函数(定时器函数)每隔一秒钟调用countDown()实现倒计时
   setTimeout("countDown('2021-06-14')", 1000)
}

JavaScript内置对象的练习_第1张图片

统计字符串中每个字母出现的次数

1、使用对象的思想:

//使用charAt()统计出现最多字符和次数
var str=prompt("请输入一个由字母组成的字符串")
var o={
     }
for(var i=0;i<str.length;i++){
     
    var chars=str.charAt(i)
    if (o[chars]) {
      //利用对象属性来查找元素
        o[chars]++ //存在 累加
    }else{
     
        o[chars]=1 //不存在 赋值为1
    }
}
console.log(o)

2、使用数组的思想:

//拿两个数组存放大小写字母出现的次数
var str=prompt("请输入一个由字母组成的字符串")
var lower=new Array(26)//存放小写字母
var upper=new Array(26)//存放大写字母
//初始化两个数组
for(var i=0;i<lower.length;i++){
     
    lower[i]=0
    upper[i]=0
}
for(var k=0;k<str.length;k++){
     
    if (str.charAt(k)>='a'&& str.charAt(k)<='z') {
     
        lower[str.charCodeAt(k)-97]++
    }else if (str.charAt(k)>='A'&&str.charAt(k)<='Z') {
     
        upper[str.charCodeAt(k)-65]++
    }
}
console.log(lower)
console.log(upper)

将十进制的整数转换成给定数制格式输出

//输入一个十进制的整数和一个数制(2-16),将该十进制的整数转换成对应格式输出
var m=parseInt(prompt("请输入一个整数"))
var k=parseInt(prompt("请输入数制(2-16)"))

var arr=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
var result=[] //存放数制转换的结果
var i=0
while(m!=0){
        //对m进行数制转换 将余数放在resul数组中
    result[i]=m%k
    m=parseInt(m/k)
    i++
}
var str=''
if (k==8) {
     
    str+='0' //八进制以0开头
}else if (k==16) {
     
    str+='0X' //十六进制以0X开头
}
for(var j=i-1;j>=0;j--){
       //要确保是逆序输出
    str+=arr[result[j]]   //将result数组的元素作为arr数组的索引下标
}
console.log("转换结果为:"+str)

你可能感兴趣的:(JavaScript,javascript,js,字符串,date,js对象赋值)