JS---数组基础练习题

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

<script>

    function test(){
        var str=""+parseInt(Math.random()*1000000);
        console.log("随机生成的数:"+str);
       for(var i in str)
            console.log("第 "+(Number(i)+1)+" 位是:"+str[i]);


    }
    test();
</script>
2.var data=[
      {id:1001,icon:"img/1.png",name:"餐饮0",num:1,price:10},
      {id:1002,icon:"img/2.png",name:"餐饮1",num:1,price:20},
      {id:1003,icon:"img/3.png",name:"餐饮2",num:1,price:30},
      {id:1004,icon:"img/4.png",name:"餐饮3",num:1,price:40},
      {id:1005,icon:"img/5.png",name:"餐饮4",num:1,price:50},
      {id:1006,icon:"img/6.png",name:"餐饮5",num:1,price:60},
      {id:1007,icon:"img/7.png",name:"餐饮6",num:1,price:70},
      {id:1008,icon:"img/8.png",name:"餐饮7",num:1,price:80},
      {id:1009,icon:"img/9.png",name:"餐饮8",num:1,price:90},
      {id:1010,icon:"img/10.png",name:"餐饮9",num:1,price:100}
  ];
  生成表格

<script>
    var data=[
        {id:1001,icon:"img/1.png",name:"餐饮0",num:1,price:10},
        {id:1002,icon:"img/2.png",name:"餐饮1",num:1,price:20},
        {id:1003,icon:"img/3.png",name:"餐饮2",num:1,price:30},
        {id:1004,icon:"img/4.png",name:"餐饮3",num:1,price:40},
        {id:1005,icon:"img/5.png",name:"餐饮4",num:1,price:50},
        {id:1006,icon:"img/6.png",name:"餐饮5",num:1,price:60},
        {id:1007,icon:"img/7.png",name:"餐饮6",num:1,price:70},
        {id:1008,icon:"img/8.png",name:"餐饮7",num:1,price:80},
        {id:1009,icon:"img/9.png",name:"餐饮8",num:1,price:90},
        {id:1010,icon:"img/10.png",name:"餐饮9",num:1,price:100}
    ];
    var table="<table>";
    table+="<tr>";
     for(var prop in data[0]){
         table+="<th>"+prop+"</th>";
     }
    table+="</tr>";
    for(var i=0;i<data.length;i++){
        table+="<tr>";
        for(var key in data[i]){
            table+="<td>"+data[i][key]+"</td>";
        }
        table+="</tr>";
    }
    document.write(table);

</script>
  3.var arr4=[1,4,7,0,2,5,8,3];
  排序 ,
  1.从大到小循环,里面嵌套从小到大循环,比较当前位置和下一位谁小,当前小,就做交换
  冒泡排序


<script>
//    冒泡排序
   var arr=[6,3,5,7,9,2,4,1,8];
    /*for(var j=arr.length;j>0;j--){
        for(var i=0;i<arr.length-1;i++){
               if(arr[i]>arr[i+1]){
                   var temp=arr[i];
                   arr[i]=arr[i+1];
                   arr[i+1]=temp;
               }
        }
    }*/
    </script>

2.循环数组,记录当前的下标,里面再嵌套一层循环,从当前的下一位开始循环到尾部
比较每个数值和当前记录下标的数值谁小,每次把小的下标存在一个变量中,不断替换
最后变量就是最小的,把当前数据和最小的数据做交换
选择排序

//    选择排序
<script>
for(var j=0;j<arr.length;j++){
    var min=j;
    for(var i=min+1;i<arr.length;i++){
        if(arr[min]>arr[i]){
            min=i;
        }
    }
    temp=arr[j];
    arr[j]=arr[min];
    arr[min]=temp;
}
console.log(arr);
</script>

4.var arr1=[1,3,5,2,1,4,3,1,2,5,3,1,2,1];
至少用2种方法去重

<script>
    var arr1=[1,3,5,2,1,4,3,1,2,5,3,1,2,1];
//    var arr2=[1,3,5,2,1,4,3,1,2,5,3,1,2,1];
 /*   var arr2=[];
    for(var i=0;i<arr1.length;i++){
        var bool=false;
        for(var j=0;j<arr2.length;j++){
            if(arr2[j]===arr1[i]){
                bool=true;
                break;
            }
        }
        if(!bool){
            arr2.push(arr1[i]);
        }
    }
    arr1=arr2.slice();
    arr2=null;
    console.log(arr1);*/

    var arr2=[];
    for(var i=0;i<arr1.length;i++){
        if(arr2.indexOf(arr1[i])===-1){
            arr2.push(arr1[i]);
        }
    }
    arr1=arr2.slice();
    arr2=null;
    console.log(arr1);

</script>

5.统计上一题种每个元素的出现次数

<script>
    var arr1=[1,3,5,2,1,4,3,1,2,5,3,1,2,1];
     var obj={};
    for(var i=0;i<arr1.length;i++){
        var value=arr1[i];
        if(!obj[value]){
            obj[value]=1;
        }else{
            obj[value]++;
        }
    }
    console.log(obj);
</script>

6.山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。
问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。

<script>
    var water = 15;
    var i = 0;

    while (water < 50) {
        water += 5;
        i++;
    }
    console.log(i)
</script>

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

<script>
    var arr=[];
    var arr1=[];
    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++){
        arr1[k]=0;
        for(var z=k;z-k<5;z++){
            arr1[k]+=arr[z];
        }
        arr1[k]/=5;


    }
    console.log(arr1);

</script>

版权声明:本文为weixin_41086056原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。