小案例
//案例1:求数组中所有元素之和:
var arr1 = [10,20,30,40,50,60,70,80,90,100];
var sum = 0;
for (var i = 0; i < arr1.length; i++) {
// console.log(arr1[i]);
sum += arr1[i];
}
console.log(sum);
//案例2:求数组中所有元素的平均值
var arr2 = [1,2,3,4,5];
var sum2 = 0;
for (var i = 0; i < arr2.length; i++) {
sum2 += arr2[i];
}
console.log(sum2/arr2.length);
//案例3:求数组中所有元素中的最大值
var arr3 = [1,2,3,4,10,100,50];
//假设max变量中存储的是最大值
var max = arr3[0];
for (var i = 0; i < arr3.length; i++) {
//判断这个变量的值和数组中每个元素的值是不是最大值
if (max<arr3[i]) {
max = arr3[i];
}
}
console.log("最大值:"+max);
//案例4:求数组中所有元素中的最小值
var arr4 = [100,10,20,30,40,50];
var min = arr4[0];//假设min里面存储的就是最小值
for (var i = 0; i < arr4.length; i++) {
if (min > arr4[i]) {
min = arr4[i];
}
}
console.log("最小值:"+min);
//案例5:倒序遍历数组
var arr5 = [10,20,30,40,50,100];
//正序
// for (var i = 0; i < arr5.length; i++) {
// console.log(arr5[i]);
// }
//倒序
for (var i = arr5.length-1; i >= 0; i--) {
console.log(arr5[i]);
}
输入年月日,判断第几天
//输入年月日 获取这个日期是这一年第几天
//判断这个年份是不是闰年
function isLeapYear(year) {
return year%4==0&&year%100!=0||year%400==0;
}
//年----月----日:2019年12月19日
function getDays(year,month,day) {
// 定义变量存储对应的天数
var days = day;
//如果用户输入的是一月份 没必要向后算天数 直接返回天数
if (month == 1) {
return days;
}
//代码执行到这里时-----证明用户输入的不是1月份
//定义一个数组 存储每个月份的天数
var months = [31,28,31,30,31,30,31,31,30,31,30,31];
//是不是输入的月份-1
for (var i = 0; i < month-1 ; i++) {
days += months[i];
}
//判断是不是润年
if (isLeapYear(year)&&month>2) {
days++;
}
return days; 31+28+31+30+31+30+31+31+30+31+30+19
}
console.log(getDays(2019,12,31))
翻转数组
//案例8:反转数组------------把数组中的数据的位置进行调换
var array = [10,20,30,40,50];
//循环 控制交换次数
// for(var i = 0;i < array.length / 2;i++){
// //先把第一个元素的值放在第三方变量中
// var temp = array[i];
// array[i] = array[array.length-1 - i];
// array[array.length-1-i] = temp;
// }
// console.log(array);
for(var i = array.length-1;i>=0;i--){
console.log(array[i]);
}
console.log(array);
斐波那契数列
function getFib(num) {
var num1 = 1;
var num2 = 1;
var sum = 0;
for (var i = 3; i <= num; i++) {
sum = num1 + num2;
num1 = num2;
num2 = sum;
}
return sum;
}
console.log(getFib(12));
// function getNum(num) {
// var num1 = 1;
// var num2 = 0;
// var sum = 0;
// for (var i = 1; i <= num; i++) {
// num2 = num1;
// num1 = sum;
// sum = num1 + num2;
// }
// return sum;
// }
// console.log(getFib(3));
素数
<input type="text" placeholder="开始" id="kaisi">
<input type="text" placeholder="结束" id="jieshu">
<button id="jisuan">计算</button>
<script>
jisuan.onclick = function(){
// 获取开始数字
var n = +kaisi.value;
// 获取结束数字
var m = +jieshu.value;
//第一次进去,把所有数都看做素数
for(n;n <= m;n++){
// 用flog等于true表示
var flog = true;
//第二次进去
for(var j=2;j<n;j++){
// 对比自己小的所有数求余,等于零说明不是素数,将flog改为false;
if(n%j === 0){
flog = false;
}
}
// 如果flog为true,说明该数为素数,打印出来
if(flog){
console.log(n)
}
}
}
</script>
数组去重
function norepeat(arr){
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i] === arr[j]){
arr.splice(j,1);
j--;
}
}
}
return arr;
}
var a=[1,3,2,3,4,3,4,5,6,7,7,8,9,8]
var b =norepeat(a);
console.log(b);
var a=[1,3,3,3,4,3,4,1,7,7,7,8,9,8]
var b =norepeat(a);
console.log(b);
冒泡排序
<script>
function paixu(arr){
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length-1;j++){
if(arr[i]>arr[j]){
var cun =arr[i];
arr[i]=arr[j];
arr[j]=cun;
}
}
}
return arr;
}
var a=[2,34,2,5,4,35];
var b =paixu(a);
console.log(b);
</script>
<script>
function paixu(arr){
for(var i=0;i<arr.length;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 a=[2,3,4,56,7,12,4,23,43,56];
var b =paixu(a);
console.log(b);
</script>
定义一个含有30个元素的数组,按顺序分别赋予从2开始的偶数; 然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。
// 定义30个元素的数组
var array =new Array(30);
// 偶数赋值过度变量
var k =0;
// 每一项数之前的和
var sum =0;
// 输出数组
var shuchu =new Array(6);
// 保存之前逐级排列5个数的和;
var m =0;
// 新数组的下标
var b =0;
// 循环原始数组,将偶数赋值给每一个下标,k作为赋值的偶数计算
for(var i=0;i<array.length;i++,k+=2){
array[i]=k+2;
};
// 循环新数组
for(var j=0;j<array.length;j++){
// 求出每一项数之前的和
sum =sum+array[j];
// 如果当前下标加1可以对5求余等于0,说明每次的5个数够了
if((j+1)%5===0){
// 用当前数之前的所有数之和,减去除了现在需要的五个数之前所有数的和
shuchu[b++]=(sum-m)/5;
// 将现在的和重新赋值给之前的和
m=sum;
}
}
console.log(array);
console.log(shuchu)