数组应用

1、计算数组中所有偶数的和 奇数的和 偶数的个数 奇数的个数

var arr = [3,42,5,43,8,54,87,98,56,9];                
function fn(brr){//形参数            
	var evenSum = 0;            
	var oddSum = 0;            
	var evenCount = 0;            
	var oddCount = 0;            
	for (var i = 0; i < brr.length; i++) {                
		if(brr[i] % 2 === 0){                    
			//brr[i]是一个偶数                    
			evenSum += brr[i];                    
			evenCount++;                
		}else{                    
			//brr[i]是一个奇数                    
			oddSum += brr[i];                    
			oddCount++;                
		}            
	}                        
	console.log(evenSum,oddSum,evenCount,oddCount);        
}        
fn(arr);//实参

2、已知数组 arr = [23,12],将数组中的两个数交换后输出

var arr = [23,12];        
var temp = arr[0]        
arr[0] = arr[1];        
arr[1] = temp;                
console.log(arr)

3、定义一个数组,存放6个数,输出这些数,并计算这些数据的平均

function fn(){            
	var arr = [65,5,6,32,64,8];            
	var sum = 0;            
	for (var i = 0; i < arr.length; i++) {                
		console.log(arr[i]);                
		sum += arr[i];            
	}                        
	console.log(sum / arr.length);        
}        
fn();

4、输出数组中的最大数和最小数

function getMaxNum(arr){            
	var maxNum = -999999999999999999999999;            
	//console.log(minNum)            
	for (var i = 0; i < arr.length; i++) {                
		if(maxNum < arr[i]){                    
			maxNum = arr[i];                
		}            
	}            
	return maxNum;        
}        
alert(getMaxNum(arr));

5、定义一个含有10个元素的数组,计算数组中素数的个数

引入js

function  isPrime(num){            
	//1不是一个素数,排除1这个值            
	if(num ===1) return false;            
	//判断num是否是一个素数            
	//如果是素数,函数返回一个true。不是素数,返回false            
	for (var i=2;i<num;i++){                 
		if(num % i ===0){//2到那个值之间有无可被那值整除的                    
			//执行到这里,num不是一个素数                    
			return false;//不是素数                 
		}            
	}            
	//当程序执行到这里,说明num是一个素数            
	return true;        
}        
var isP = isPrime(1);        
console.log(isP);//true num是素数
var arr = [43,236,5,87,65,3455,65,4];        
function fn(arr){            
	var count = 0;            
	for (var i = 0; i < arr.length; i++) {                
		if(isPrime(arr[i])){//true                    
			//arr[i]是一个素数                    
			//console.log(arr[i]);                    
			count++;                
		}            
	}            
	console.log(count + "个");        
}        
fn(arr);

6.var arr = [[3,5,4,7],[“e”,“u”,“d”],[“i”,8,“z”]];遍历这个二维数组,在控制台输出每一个元素。

var brr = [[3,5,4,7],["e","u","d"],["i",8,"z"]];                        
console.log(brr);                       
for (var i = 0; i < brr.length; i++) {            
	//console.log(brr[i])            
	for(var j = 0; j < brr[i].length; j++){                
		console.log(brr[i][j]);            
	}        
}                           
var arr = [[],[],[]];

在这里插入图片描述

案例:通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角。试编程。

// [[1,2,3,4,5]
,// [6,7,8,9,10]
,// [11,12,13,14,15],
// [16,17,18,19,20],
// [21,22,23,24,25]];

function fn(){                
	var arr = [[],[],[],[],[]];                                
	// arr[0][0] = 1                
	// arr[0][1] = 2                
	// arr[0][2] = 3   

                                             
	// arr[1][0] = 6                
	// arr[1][1] = 7                
	var index = 0;                
	for (var i = 0; i < 5; i++) {                    
		for(var j = 0; j < 5; j++){                        
			arr[i][j] = ++index;                    
		}                    
		for(var z = 0;z < i+1; z++){                        
			document.write(arr[i][z] + " ");                    
		}                    
		document.write("<br>");                
	}                                
	//console.log(arr);                            
}            
fn();

在这里插入图片描述

定义一个含有10个元素的数组,任意输入一个数,判断这个数在数组中是否存在,如果存在,就删除这个数

var arr =[1,2,6,4,5,6,7,8,9,10];        
// var num =[6];  6        
//数组   输出数字        
function deleteNum(arr,num){            
	//使用splice();方法删除数组            
	//遍历arr            
	for(var i =0;i < arr.length;i++){            
	//判断num在arr中是否存在            
	if(arr[i] === num){                
		//说明num存在                
		//删除arrp[i]这个存在的num数                
		arr.splice(i,1);//删除了一个元素,数组少了一个,当前的元素会去上一次循环的位置                
		//让循环返回上一次循环位置继续循环                
		i--;            
	}        
}        
	return arr;            
	}    
	deleteNum(arr,6);    
	console.log(arr);

在这里插入图片描述

输入若干个成绩存入到数组中,输入负数后退出。 统计数组平均成绩,输出低于平均成绩的分数并统计低于平均成绩的学生个数 prompt()

//获取数组                    
function computScore(){                        
	//获取成绩                        
	//成绩保存在数组中                        
	var score,//单个成绩                            
		scoreArr = [],//用来保存所有容器                            
		totalScore = 0,//用来保存总成绩                            
		count = 0;                        
	//统计数组平均成绩                        
	while(true){                            
		score = Number(prompt('输入成绩'));//转为数值型                            
		if(!isNaN(score)){//数字                                
			if(score < 0){                                    
				//单个成绩不得低于0,否则退出                                    
				break;                                
		}else if(score > 100){                                    
			alert('成绩不在范围,请重新输入')                                
		}else{                                    
			//0-100                                    
			scoreArr.push(score);//数组容器存入新元素                                    
			//累加成绩                                    
			totalScore += score;                                
		}
        }else{                                
      	  	//非数字                                
	        alert('输入有误,请重新输入')                            
        }                        
}                        
//计算平均成绩,总成绩/成绩个数                        
var avgScore = totalScore/scoreArr.length;                        
//输出低于平均成绩的分数                        
for (var i=0;i< scoreArr.length;i++){                            
   if (scoreArr[i]< avgScore){                                
        console.log(scoreArr[i]);                                
        count++;                            
   }                        
}                        
console.log(totalScore,avgScore,count);//总成绩,平均成绩,几个数                    
}                    
 computScore();

定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程。

//  30个整形元素的数据        
//按顺序分别赋予从2开始的偶数        
//[2,4,6,8,........,60]        
function test(){            
	//获取数组            
	var index =2;            
	var evenNumArr =[];//存放偶数数组            
	var count = 0;//计算次数            
	var sum = 0;//存放5数之和            
	var avgArr =[];//存放平均值数组            
	while (index <=60){                
		evenNumArr.push(index);                
		//2,4,6...60                
		//2 4 6 8 10                
		//12 14 16 18 20                
		//30                
		//40                
		//50                
		//60                
		/*if(index % 10 === 0){//每五次                                    
		}*/                
		count ++;                
		sum +=index;//把5次遍历出的值加起来给sum                
		if(count === 5){//每5次                    
			avgArr.push(sum/5);//⭐⭐⭐每五个的平均成绩保存在数组中                    
			sum = 0;//第一次sum总数从0开始累加                    
			count = 0;
                }                
                index +=2;//条件跳出后,数组内元素自动加2            
          }            
          console.log(avgArr);//输出平均值
        }        
        test();//调用函数

在这里插入图片描述

随机生成一个五位以内的数,然后输出该数共有多少位,每位分别是什么

//得到一个随机数            
function fn(){                
	var randNum = parseInt(Math.random()*10000);                
	console.log(randNum);//输出生成数                
	var arr =[];//生成新数组                
	var textArr =  ['个位是','十位是','百位是'] ;                
	var count =0;//计数器,当计算几位数                
	while(randNum){                    
		//执行了几次循环,randNum就是几位数;                    
		arr.push(textArr[count] + randNum%10);//数组组合                    
		count++;//计数器,计算位数                    
		randNum = parseInt(randNum/10);//每次循环后生成数位数减1
      }                
      console.log(count,arr);//输出位数  及每位分别代表什么            
      }            
      fn();            
      for (var i = 0; i < 10; i++) {            
      fn();      
}

在这里插入图片描述

编写函数map(arr) 把数组中的每一位数字都增加30%

var arr = [54,34,65,1,4,8];        
function map(arr){            
	for (var i =0;i<arr.length; i++){                
		//arr[i] = arr[i] * 1.3                
		arr[i] *=1.3;            
	}        
}        
map(arr);        
console.log(arr);

在这里插入图片描述

有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

例如 原数组 [3,10,49,89,100]
插入一个数 15
新数组为 [3,10,15,49,89,100]
思路 : 找到 要添加数的下标
a–在数组中的某个数据的位置上
b-- 在数组中的最后添加 arr.length

var arr =[1,2,3,4,5];        
function insertNum(arr,num){//传入数组和要输入的数值            
	var index = arr.length;            
	//只要num遇到一次arr中元素比其大,要在当前位置插入            
	for (var i =0; i<arr.length; i++){//遍历下数组找值比对                
		if(arr[i] > num){                    
			//当前位置插入num;                    
			//arr.splice(i,0,num)                    
			//保存要插入位置的下标                    
			index = i;//⭐⭐⭐                    
			break;//不需要往下比较                
		}
        }            
        arr.splice(index,0,num);//⭐⭐⭐        
  }        
  insertNum(arr,3);//调用数组        
  console.log(arr);

在这里插入图片描述

定义一个含有10个元素的数组 计算下标为奇数的元素的平均数(自定义函数实现)

var arr = [5,9,8,6,5,8,66,7,8,9];                    
function fn(arr){                        
	var avg = 0;                        
	var count = 0;                        
	for(var i =0;i<arr.length; i++){                            
		if(i % 2 ===1){                                
			avg+=arr[i];//下标为奇数的元素手机起来加                                
			count ++;                            
		}                        
	}                        
	return avg / count;                    
}                    
fn(arr);                    
console.log(fn(arr));

某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:

每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,
请编写一个函数,传入原文,输出密文

function getPass(num){                        
	//4758                        
	//4: +5  9%10  ==>9                        
	//7: +5  12%10  ==>2                        
	//5: +5   10%10 ==>0                        	
	//8: +5   13%10  ==> 3                        
	//pass:  3029                        
	var passArr = [];                        
	while(num){                            
		//执行四次                            
		//1 : 个                            
		//2: 十                            
		//3:百                            
		//4:千                            
		passArr.push((num%10 + 5)%10);                            
		num = parseInt(num/10);                        	
	}                        
	//console.log(passArr)                        
	return Number(passArr.join(""));                    
}                                        
var pass = getPass(4758);                    
console.log(pass);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值