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)
}

在这里插入图片描述

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

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)
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值