js基础练习(四)

来源:互联网 发布:linux wps 切换输入法 编辑:程序博客网 时间:2024/05/17 20:30
练习:
通过循环按行顺序为一个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

var arr=[];for(var i=0;i<5;i++){var j=i*5+1;var k=5;arr[i] = new Array();while(k--){arr[i].push(j++);}for(var x=i+1,z=0;x>0;x--,z++)document.write(arr[i][z]+" ");document.write("<br/>");}

var a = [[],[],[],[],[]];for(var i=0; i<25; i++){a[parseInt(i/5)].push(i+1);}console.log(a);for(var i=0; i<a.length; i++){for(var j=0; j<i+1; j++){document.write(a[i][j] + "\t");}document.write("<br>");}


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

var list = [];
for(var i=2; i<=100000; i+=2){
     if(list.push(i) == 30) break;
}
var newlist = [];
var count = 0;
var sum = 0;
for(var i in list){
     sum += list[i];
     if( ++count == 5){
          newlist.push(sum/5);
          count = sum = 0;
     }
}
var arr=[];var arr_t=[];for(var i=2,j=0;j<30;i+=2,j++){arr.push(i);}console.log(arr);for(var k=0;k<arr.length-4;k++){arr_t[k]=0;for(var z=k;z-k<5;z++){arr_t[k]+=arr[z];}arr_t[k]/=5;}console.log(arr_t);


随机点名程序

var namelist = ["小明","小红","小刚","大宝"];

function randName(){
     return  namelist[parseInt(Math.random()*namelist.length)];
}


数字字母验证码

var list = ['1','2','3','4','5','6','7','8','9','0','a','b','c'];


请编写一个函数join,将数组的每一位按照指定字符链接起来 ,例如: join([1,2,3], "%"), 运行结果"1%2%3";

function join(arr, sp){
        var str = "";
        for(var i=0; i<arr.length; i++){
                if(i==(arr.length-1)){
                        str += arr[i];     
                } else {
                        str += (arr[i]+sp);
                }
        }
}
function join(arr,str){var res="";for(var i of arr){res+=i+str;}console.log(res.substring(0,res.length-1));}join([1,2,3],'%');



随机生成一个五位以内的数,然后输出该数共有多少位,每位分别是什么
function test(){var str=""+parseInt(Math.random()*1000000);console.log("随机生成的数:"+str);for(var i in str)console.log("第 "+(Number(i)+1)+" 位是:"+str[i]);}



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

var list = [10000, 12000, 15000, 18000];
function test(list){console.log(list);//[10000, 12000, 15000, 18000]for(var num in list)list[num]+=list[num]*0.3;console.log(list);// [10000, 12000, 15000, 18000]}test( [10000, 12000, 15000, 18000] );


编写函数has(arr , 60) 判断数组中是否存在60这个元素,返回布尔类型
function has(arr,num){for(var i of arr){if(i==num){console.log("数组中有 "+num+" 这个元素");return true;}}console.log("数组中没有 "+num+" 这个元素");return false;}has( [10000, 12000, 15000, 18000],10000 );



编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组

var list = [13, 14, 15, 13, 15, 20 ,80];

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);}}console.log(arr);}norepeat( [13, 14, 15 , 20, 20 ,13 ,15, 13, 15, 20 ,80]);








原创粉丝点击