目录
一、关于变量使用
交换两个变量的值
二、递增运算符练习
三、分支语句判断闰年、成绩级别
四、循环题目
求1-100之间所有整数的累加和,平均值等
打印五行五列星星
打印倒三角形
九九乘法表
简易ATM
五、数组
数组中的最大值
将数组转为字符串
筛选数组
翻转数组
六、函数
利用函数求数组中的最大值
冒泡排序
用户输入年份程序输出2月份天数
七、对象
利用对象封装自己的数学对象
猜数字游戏
倒计时
八、数组对象
筛选数组
数组去重
返回字符位置
查看数组中某个元素出现的位置以及个数
统计出现最多的字符和次数
一、关于变量使用
- 名叫cute的人去酒店前台登记入住,需要填一张表,内容包括:姓名,年龄,家庭住址,邮箱和工资,存储后需要展出以下内容:我叫cute,我今年21岁,我住在航空星球,我的邮箱是cute@qq,我工资是1000元。
-
交换两个变量的值
二、递增运算符练习
通过练习要掌握前置(先自加,后运算)和后置(先表达式返回原值,后自加1)的区别
三、分支语句判断闰年、成绩级别
接收用户输入的年份,如果是闰年就弹出闰年,否则弹出是平年
接收用户输入的分数,根据分数输出对应的等级字母A、B、C、D、E
其中:90分(含)及以上输出A;80分(含)-90分,输出B;70分(含)-80分,输出C;60分(含)-70分,输出D;60分及以下,输出E
四、循环题目
求1-100之间所有整数的累加和,平均值等
打印五行五列星星
(我的输入法星星显示不出来 这里用√代替 思路一致)
打印倒三角形
九九乘法表
简易ATM
/*
简易Atm :思路 里面存100块钱,如果存钱,就用输入钱数加上先存的钱数,之后弹出显示余额
如果取钱,就减去去的钱数,之后弹出余额提示框
如果显示余额,就输出余额
如果退出 弹出退出信息提示框
*/
var money = 100;
while(true){ //确保不退出的情况下一直在循环
var put =prompt('请输入您要的操作:\n 1、存钱\n 2、取钱 \n3、显示余额 \n4、退出');
if (put == 1){
var enter = prompt('请你输入要存入的钱数:');
money += parseInt(enter); //需要注意字符转换
alert('您现在的钱数是:'+money);
}
if (put == 2){
var out = prompt('请你输入要取出的钱数:');
money -= parseInt(out);
alert('您现在的钱数是:'+money);
}
if (put == 3){
alert('您现在的余额是:'+money);
}
if (put == 4){
alert('正在退出!');
break;
}
}
五、数组
数组中的最大值
求数组[2,6,1,33,52,24,7]中的最大值
/*
1、定义一个max变量存放最大值,默认最大值是第一个元素
2、遍历这个数组,一一和max去比较 如果大于max 则交换
*/
var arr = [2,6,1,33,52,24,7];
var max = arr[0];
for (var i = 0;i < arr.length;i++){
if(arr[i] > max){
max = arr[i];
}
}
console.log(max);
将数组转为字符串
/*
将数组['red','green','bule','pink']转为字符串,并用*或其他符合分割
1、定义一个str变量存放转换完的字符串
2、遍历原来的数组,分别把里面数据取出来,加到字符串里
3、在后面加上分隔符
*/
var arr = ['red','green','bule','pink'];
var str = '';
var stp = '*';
for (var i = 0;i < arr.length;i++){
str += arr[i] + stp;
}
console.log(str); //red*green*bule*pink*
筛选数组
/*
将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10的元素选出来,放入新数组
思路:1、声明一个新数组用于存放新数据newArr
2、遍历原来的旧数组,找出大于等于10的元素
3、依次追加给新数组newArr。
*/
var arr = [2,0,6,1,77,0,52,0,25,7];
var newArr = [];
for (var i = 0;i < arr.length;i++){
if (arr[i] > 10){
newArr[newArr.length] = arr[i]; //newArr.length相当于索引号从0开始,依次递增
}
}
console.log(newArr);
翻转数组
/*
将数组['red','purple','green','blue','pink']的内容反过来存放
思路:1、声明一个新数组newArr
2、把旧数组索引号第4个(arr.length - 1)给新数组索引号第0个元素
3、使用循环,旧数组依次递减 i--
*/
var arr = ['red','purple','green','blue','pink'];
var newArr = [];
for (var i = arr.length - 1;i >= 0;i--){
newArr[newArr.length] = arr[i];
}
console.log(newArr);
六、函数
利用函数求数组中的最大值
//求数组的最大值
function getMax(arr){
var max = arr[0];
for(var i = 1;i < arr.length;i++){
if (arr[i] > max){
max = arr[i];
}
}
return max;
}
var re =getMax([43,22,55,24,30]); //实参很长,我们把它转换为一个变量
console.log(re);
冒泡排序
//利用函数冒泡排序
function sort (arr){
for (var i = 0;i < arr.length - 1;i++){
for (var j = 0;j < arr.length - i - 1;j++){
if (arr[j]>arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
var arr1 = sort([2,4,1,5,3]);
var arr2 = sort([66,46,45,63,27,44]);
console.log(arr1,arr2);
用户输入年份程序输出2月份天数
//用户输入年份并判断是闰年吗 2月份有多少天
function backDay(){ //backday()函数负责区别2月份天数
var year = prompt('请你输入年份:');
if(isRunyear(year)){ //调用isRunyear()函数
alert('当前年份的闰年2月份有29天');
}else{
alert('当前年份的闰年2月份有28天');
}
}
backDay();
function isRunyear(year){ //判断是不是闰年
var flag = false;
if (year%4 == 0 && year%100 !=0 || year%400 == 0){
flag = true;
}
return flag;
}
七、对象
利用对象封装自己的数学对象
var myMath = {
PI:3.141592653,
max : function(){
var max = arguments[0];
for( i =1 ;i<arguments.length;i++){
if (arguments[i] > max){
max = arguments[i];
}
}
return max;
},
min : function(){
var min = arguments[0];
for( i =1 ;i<arguments.length;i++){
if (arguments[i] < min){
min = arguments[i];
}
}
return min;
}
}
console.log(myMath.PI);
console.log(myMath.max(1,4,6,7));
console.log(myMath.min(1,4,5,6,7));
猜数字游戏
//利用函数随机生成一个1-10间的数
function getRondom(min,max){
return Math.floor(Math.random() * (max -min +1)) + min;
}
var rondom = getRondom(1,10);
while(true){ //死循环
var num = prompt('你来猜一个数字:');
if (num > rondom){
alert('你猜大了');
}else if(num < rondom){
alert('你猜小了');
}else{
alert('congratulation!');
break;
}
}
倒计时
function conutDown(time){
var nowTime = +new Date(); //当前时间的秒数
var inputTime = +new Date(time); //用户输入时间的毫秒数
var times = (inputTime - nowTime) /1000; //times是剩余时间总的秒数
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 + '秒';
}
console.log(conutDown('2022-5-1 18:00:00'));
八、数组对象
筛选数组
//在一个包含工资的数组【1500,1200,2000,2100,1800】,要求把数组超过2000的
// 删除,剩余的放到新数组里面
var arr = [1500,1200,2000,2100,1800];
var newArr = [];
for (var i = 0;i<arr.length;i++){
if(arr[i]<2000){
newArr.push(arr[i]);
}
}
console.log(newArr);
数组去重
//封装一个去重的函数
/*
核心算法:遍历旧数组,拿旧数组元素去查询新数组,如果该数组在新数组里
没有出现过,我们就添加,否则不添加
利用 新数组.indexOf(数组元素) 如果返回-1 就说明新数组里面没有改元素
*/
function unique(arr){
var newArr = [];
for (var i = 0;i<arr.length;i++){
if (newArr.indexOf(arr[i]) === -1){
newArr.push(arr[i]);
}
}
return newArr;
}
var demo = unique(['c','a','z','a','x','a','x','c','b']);
console.log(demo);
返回字符位置
//查找字符串中o出现的位置和次数
//核心算法:先找到第一个o出现的位置
//然后利用indexOf进行循环 如果不是-1就往后查找
//定义一个num进行计数
var str = 'abcoefoxyozzopp';
var index = str.indexOf(['o']);
var num = 0;
while(index != -1){
console.log(index);
num++;
index = str.indexOf('o',index+1);
}
console.log('o出现的次数为'+num);
查看数组中某个元素出现的位置以及个数
//查看数组中某个元素出现的位置以及个数
var arr = ['red','blue','red','green','pink','red','yellow','red','red'];
var index = arr.indexOf('red');
var num = 0;
while(index != -1){
console.log(index);
num++;
index = arr.indexOf('red',index+1);
}
console.log('red出现的次数为'+num);
统计出现最多的字符和次数
//统计出现最多次数的字符
//核心算法 利用charAt()遍历这个字符串
//把每个字符都存储给对象,如果对象没有该属性,就为1,如果存在就加1
//遍历对象 得到最大值和该字符
var str ='abcoefoxyozzopp';
var o ={};
for(var i = 0;i<str.length;i++){
var chars = str.charAt(i);
if(o[chars]){
o[chars]++;
}else{
o[chars] = 1;
}
}
console.log(o);
//遍历对象
var max = 0;
var ch ='';
for (var k in o){
if(o[k] > max){
max = o[k];
ch = k;
}
}
console.log('最多的字符是'+ch);
console.log(max);
更多推荐
JavaScript基础案例篇(题目附代码)
发布评论