js数组练习

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

//    第一种
   /* var arr1=[];
    var bool=false;
    var str="";
    var num=0;
    for(var i=0;i<4;i++){
        arr1[i]=parseInt(Math.random()*10);
        if((arr1[i]===0 && bool) ||arr1[i]!==0){
            str+=arr1[i];
            num++;
            bool=true;
        }
    }
console.log(arr1,str,num)*/
//   第二种
    var arr1=[];
   var bool=false;
   for(var i=0;i<4;i++){
       var s=parseInt(Math.random()*10);
       if(s===0 &&!bool) continue;
       arr1.push(s);
       bool=true;

    }
    var num=Number(arr1.join(""));
    console.log(arr1,arr1.length,num)

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}
];
生成表格

<style>
         table{
             border-collapse: collapse;
         }
        td,th{
            border:1px solid black;
            width:100px;
            height:30px;
            line-height: 30px;
            text-align:center;
        }
        tr{
            height:30px;
        }
    </style>
  <script>
  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>";
        var obj=data[i];
        for(var key in obj){
            table+="<td>"+obj[key]+"</td>";
        }
        table+="</tr>"
    }
document.write(table);
  </script>

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

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

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

 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;
            }
        }
        var temp=arr[j];
        arr[j]=arr[min];
        arr[min]=temp;
    }

4.var arr1=[1,3,5,2,1,4,3,1,2,5,3,1,2,1]; (var prop in obj){
至少用2种方法去重

var arr1=[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)

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开始的偶数;
然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程。

var arr=[];
       for(var i=0;i<60;i+=2){
            arr.push(i);
       }
        var arr2=[];
       for(var i1=0;i1<arr.length;i1++){
           var sum=0;
            for(var j=i1;j<i1+5;j++){
                if(!arr[j] && arr[j]!==0) break;
                sum+=arr[j];
            }
            arr2.push(sum/(j-i1));
       }
       console.log(arr,arr2)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值