前言
随手记录下学习JS过程中一些例题解答过程.
一、JS实现简易ATM
题目要求如下:
- 里面现存有 100 块钱
- 如果存钱,就用输入钱数加上先存的钱数, 之后弹出显示余额提示框
- 如果取钱,就减去取的钱数,之后弹出显示余额提示框
- 如果显示余额,就输出余额
- 如果退出,弹出退出信息提示框
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
// 里面现存有100块钱
// 如果存钱,就用输入钱数加上先存的钱数.之后弹出显示余额提示框
// 如果取钱,就减去取的钱数,之后弹出显示余额提示框
// 如果显示余额,就输出余额
// 如果退出,就弹出退出信息提示框
var now_money = 100;
var flag = true;
while(flag){
var operate = parseInt(prompt('请输入您要的操作: \n1.存钱 \n2.取钱 \n3.显示余额 \n4.退出'))
switch(operate){
//存钱
case 1:
var save = parseFloat(prompt('请您输入存的钱数:'))
now_money += save;
alert('您现在的钱数是:' + now_money);
break;
//取钱
case 2:
var withdraw = parseFloat(prompt('请您输入取的钱数:'));
if ( now_money >= withdraw ) {
now_money -= withdraw;
alert('您现在的余额是:' + now_money)
}
else {
alert('您卡里的余额不够哦~')
}
break;
//显示余额
case 3:
alert( '您现在的钱数是:'+ now_money );
break;
//退出
case 4:
alert('您正在退出!')
default:
alert('输入有误,请重新输入~')
break;
}
}
</script>
</head>
<body>
</body>
</html>
二、求1-100之间所有数的总和与平均值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
//求1-100之间所有数的总和与平均值
var sum = 0;
var average = 0;
for ( i = 1; i <= 100; i++ ){
//1-100之间所有数的总和
sum += i;
//1-100之间所有数的平均值-总数/总个数
average = sum / 100;
}
alert('1-100之间所有数的总和为:' +sum);
alert('1-100之间所有数的平均值为:' + average);
</script>
</head>
<body>
</body>
</html>
三、求1-100之间所有偶数的和
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
//求1-100之间所有偶数的和
var sum = 0;
for ( i = 1; i <= 100; i++ ){
//1-100之间所有偶数的和
if ( i % 2 == 0 ) {
sum += i;
}
}
alert('1-100之间所有偶数的和为:' +sum);
</script>
</head>
<body>
</body>
</html>
四、求100以内7的倍数的总和
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
//求100以内7的倍数的总和
var sum = 0;
for ( i = 1; i < 100; i++ ){
//100以内7的倍数的总和
if ( i % 7 == 0 ) {
sum += i;
}
}
alert('100以内7的倍数的总和为:' +sum);
</script>
</head>
<body>
</body>
</html>
五、使用for循环打印矩形
实现效果:
☆☆☆☆☆
☆☆☆☆☆
☆☆☆☆☆
☆☆☆☆☆
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
//使用for循环打印矩
var str = '';
for ( i = 1; i <= 5; i++ ){ //确定列数为5
for ( j = 1; j <= 5; j++){ //打印五个✨
str += '✨';
}
str += '\n'; //换行
}
alert(str)
</script>
</head>
<body>
</body>
</html>
六、使用for循环打印三角形
实现效果:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
//使用for循环打印左上直角三角形
var str = '';
for ( i = 0; i < 5; i++ ){ //确定列数为5
for ( j = 0; j <= i; j++){ //打印左上直角三角形
str += '✨';
}
str += '\n'; //换行
}
alert(str)
</script>
</head>
<body>
</body>
</html>
七、使用for循环打印99乘法表
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
//使用for循环打印99乘法表
var sum='';
for ( var i = 1; i <= 9; i++ ){ //确定列数为9
for ( j=1; j <= i; j++){
sum += j + 'x' + i + '=' + j*i+'\t' ;
}
sum += '\n' //换行
}
console.log(sum)
</script>
</head>
<body>
</body>
</html>
八、求整数1-100的累加值,但要求跳过所有个位为3的数
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
//求整数1-100的累加值,但要求跳过所有个位为3的数
var sum=0;
for ( var i = 1; i <= 100; i++ ) {
if ( i % 10 == 3){
continue;
}
sum += i;
}
alert(sum)
</script>
</head>
<body>
</body>
</html>
九、将数组[ ‘red’, ‘green’, ‘blue’, ‘pink’ ] 转换为字符串,并且用 | 或其他符号分割
输出 : ‘red|green|blue|pink|’
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
var arr = ['red', 'green', 'blue', 'pink'];
var str = '';
var sep = '|';
for ( var i = 0; i < arr.length; i++){
str += arr[i] + sep;
}
alert(str);
</script>
</head>
<body>
</body>
</html>
十、写一个函数,用户输入任意三个不同数字的最大值,并能弹出运算后的结果
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
//用户输入任意三个不同数字的最大值,并能弹出运算后的结果
function getMax(arr) {
for (var i = 0; i < arr.length; i++){
var max = 0;
if(max < arr[ i ]){
max = arr[i];
}
}
return max;
}
num1 = parseInt(prompt('请输入第一个数'));
num2 = parseInt(prompt('请输入第二个数'));
num3 = parseInt(prompt('请输入第三个数'));
var newArr = [num1, num2, num3]
alert('您输入的数的最大数为: ' + getMax(newArr))
</script>
</head>
<body>
</body>
</html>
十一、写一个函数,用户输入任意两个数字的任意算术运算(简单的计算器小功能),并能弹出运算后的结果
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
//写一个函数,用户输入任意两个数字的任意算术运算(简单的计算器小功能),并能弹出运算后的结果
function getNum(num1,num2){
return [parseInt(num1) + parseInt(num2), num1 - num2, num1 * num2, num1 / num2];
}
flag = true;
while(flag){
prompt_num1 = prompt('请输入第一个数:');
prompt_num2 = prompt('请输入第二个数:');
arr = getNum(prompt_num1, prompt_num2);
operators = parseInt(prompt('请输入您想要的运算:\n 1. 相加+ \n 2.相减 - \n 3.相乘 * \n 4.相除 / \n' ))
switch(operators){
case 1:
alert(arr[0]);
break;
case 2:
alert(arr[1]);
break;
case 3:
alert(arr[2]);
break;
case 4:
alert(arr[3]);
break;
default:
alert('没有这个运算哦~')
break;
}
}
</script>
</head>
<body>
</body>
</html>
十二、用户输入年份,输出当年份2月份的天数
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
// 用户输入年份,输出当年份2月份的天数
function is_leapYear (year) { //判断是否为闰年
var flag = false;
if (( year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ) {
flag = true;
}
return flag;
}
//根据年份判断2月份天数
function backDay() {
var year = prompt('请您输入年份:');
if ( is_leapYear(year)) {
alert('当前年份是闰年,2月份有29天');
}
else {
alert('当前年份是平年,2月份有28天')
}
}
var year1 = backDay();
</script>
</head>
<body>
</body>
</html>
十三、写一个函数,实现反转任意数组
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
// 写一个函数,实现反转任意数组
function Reverse(arr) {
// 声明一个新的数组newArr
var newArr = [];
for ( var i = arr.length - 1; i >= 0; i-- ){
//newArr[newArr.length] 是随数组长度动态变化的,
//所以可以动态接收来自arr[i] 的赋值
newArr[newArr.length] = arr[i];
}
return newArr;
}
var arr1 = Reverse([1,9,3,8,7]);
alert(arr1)
</script>
</head>
<body>
</body>
</html>
十四、写一个函数,实现对数字数组的排序(冒泡排序)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
</style>
<script>
// 写一个函数,实现对数字数组的排序(冒泡排序)
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 tmp = arr [j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
return arr;
}
var arr1 = sort([2,1,9,6,7]);
alert(arr1);
</script>
</head>
<body>
</body>
</html>