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