JS数组练习

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

 1     <script>
 2         //拿到随机的五位数
 3         var  num = parseInt(Math.random() * 100000)  
 4         // 分别拿到每一位数
 5         var a=parseInt(num/10000)
 6         var b=parseInt(num%10000/1000)
 7         var c=parseInt(num%1000/100)
 8         var d=parseInt(num%100/10)
 9         var e=num%10
10         // 把拿到的每一项数字 放到一个数组里面
11         var arr=[a,b,c,d,e]
12         for(var x=0;x<arr.length;x++){
13         // 从 第 0 项开始判断   如果是 0 就把这一项删除   如果不是 0 直接输出
14             if(arr[x]===0){
15                 arr.shift()
16                 x--
17             }else{
18                 break
19             }
20         }
21         //转换为字符串
22         var res=arr.join()
23         document.write("一共有"+arr.length+"位"+"每一位分别是"+res)
24     </script>
2. 编写函数map(arr) 把数组中的每一位数字都增加30%,并返回一个新数组
 1         var arr = [10, 100, 1000]
 2         function map() {
 3             var brr=[]
 4             //遍历数组
 5             for(cc in arr){
 6                 //给空数组插入arr里面的值
 7                 brr.push(arr[cc]*1.3)
 8             }
 9             //返回新数组的值
10             return brr
11         }
12 
13         console.log(map(arr)) // [13, 130, 1300]
3. 编写函数has(arr , 60) 判断数组中是否存在60这个元素,返回布尔类型
方法一: 
        var arr=[10,20,30,40,50,80]
        function has(arr,b){
            //通过indexof检查有没有传入的数据(值-1就说明没有)
            // 通过三元表达式判断,结果为false执行ture
            return arr.indexOf(b) === -1 ? false : true  
        }

        console.log(has(arr,50))//ture

方法二

 1         var arr=[10,20,30,40,50,80]
 2         function has(arr,b){
 3             //先声明一个变量,假设值位false
 4             var hello=false
 5             //遍历数组
 6             for(w in arr){
 7                 //判断数组中的每一个值是否与传入的值相等
 8                 if(arr[w]==b){
 9                  hello=true 
10                 }
11             }
12             return hello
13         }
14 
15         console.log(has(arr,80))//true
4. 编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组
 1         var arr = [1, 1, 2, 3, 4, 4, 2, 1, 3, 5]
 2         function norepeat(arr) {
 3             var bbc = []
 4             //赋值给新数组
 5             for (var a = 0; a < arr.length; a++) {
 6                 bbc[a] = arr[a]    
 7             }
 8             //排序数组
 9             bbc.sort(function(w,e){return w - e })
10             console.log(bbc)
11             //两个相邻的进行比较 有重复的就删掉
12             for(var k=0;k<bbc.length;k++){
13                 if(bbc[k]===bbc[k+1]){
14                         bbc.splice(k,1)
15                         k--
16                 }
17             }
18             return bbc
19         }
20             var ff=norepeat(arr)
5.有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
 1         //先插入这个数
 2         //sort 排序
 3
 4         function crr(n){
 5             arr=[1,2,3,4,5,7,9]
 6             arr.push(n)
 7             //return 返回arr的值
 8             return arr.sort(function(a,b){return a-b})
 9             
10         }
11         var kk=crr(2)
原文地址:https://www.cnblogs.com/llive/p/12974971.html