JavaScript第八天 数组&Math

数组

创建数组
var arr=[]
var arr=new Array();
添加删除
push( ) 末尾添加 pop() 末尾删除
unshift()头部添加 shift()头部删除
splice()删除添加替换
删除:可以删除任意数量的项,需指定两个参数,删除的第一项位置和要删除的项数。
.splice(1) 当前位置之后都删除 .solice(1,1) 当前位置开始删除,删除长度为1
添加:可以向指定位置插入任意数量的项,三个参数,起始位置,0(要删除的项数)和要插入的项。
.splice(1,0,4)
替换:可以向指定位置插入任意数量的项,同时删除任意数量的项。三个参数,起始位置,要删除的项数和要插入的项
.splice(1,1,1)

数组排序算法

选择排序
 var arr=[3,5,11,8,0]

     for(var i=0;i<arr.length;i++){
         for(var j=1;j<arr.length;j++){
             if(arr[i]>arr[j]){
                 var x=arr[i];
                 arr[i]=arr[j];
                 arr[j]=x
             }
         }
     }
     console.log(arr)
冒泡排序
var arr=[33,5,2,77,4];
    for(var i =0;i<arr.length;i++){
        for(var j=0;j<arr.length-i;j++){
            if(arr[j]>arr[j+1]){
                var x=arr[j]
                arr[j]=arr[j+1]
                arr[j+1]=x
            }
        }
    }
    console.log(arr)

sort

sort( ) 默认按字符串形式的升序排序

数组其他方法

1, join()方法
只接收一个参数,用作分隔符的字符串,然后返回包含所有数组项的字符串

2, concat()方法
接受一个或多个数组,该方法会将这些数组中的每一项都添加到结果数组中。
3,reverse()方法
反转数组项的顺序
4,indexOf()方法
两个参数 查找的项和(可选的)表示查找起点位置的索引

数组的迭代方法

1.every 全是true,返回true
2.some 有一个true,返回true
3.filter 针对数组元素做判断,满足条件的元素,组成新的数组并且返回
4.map 返回新数组,将返回的值组合成新数组
5.forEach 没有返回值,就是简单的循环


    //every    全是true,返回true
    var arr=[true,false,true,true];
    var isAll = arr.every(function (value,index,array){
        return value==true
    });
    console.log(isAll);

    var arr1=[6,7,10,8,9];
    var s=arr1.every(function (value,index){
        return value>5;
    })
    console.log(s)
    //some  有一个true,返回true
    var arr2=[1,4,6,2];
    var a=arr2.some(function (value,index){
        return value>5;
    });
    console.log(a)

    //filter  针对数组元素做判断,满足条件的元素,组成新的数组并且返回
    var arr3=[1,5,2,87,0,4]
    var arr4=arr3.filter(function (value,index){
        return value<9;
    })
    console.log(arr4)

    //map 返回新数组,将返回的值组合成新数组
    var arr5=[3,1,2,4,6,7]
    var arr6=arr5.map(function (value,index){
        return value*value
    })
    console.log(arr6)

    //forEach 没有返回值,就是简单的循环
    arr5.forEach(function (value,index){
        console.log(value)
    })

数学对象

1,Math.ceil( )向上取整
2,Math.floor( )向下取整
3,Math.round( )四舍五入
4,Math.abs( )绝对值
5,Math.min( )最小值
6,Math.max( )最大值
7,Math.pow(num,power ) num的power次幂
8,Math.sqrt( ) 参数的平方根
9,Math.random( ) 0~1的一个随机数

  		console.log(Math.ceil(3.14))
        console.log(Math.floor(3.14))
        console.log(Math.round(3.14))
        console.log(Math.abs(-3.14))
        console.log(Math.min(1,4,7,39))
        console.log(Math.max(1,4,7,39))
        console.log(Math.pow(3,3))
        console.log(Math.sqrt(64))
        console.log(Math.random())


        console.log(Math.floor(Math.random()*10))//0~9

20~100的随机数


       var h= document.getElementsByTagName("h1")[0]
        var m = parseInt(Math.random() * 80 + 20)
        var arr=[]
        for (var i = 0; i < 10; i++) {
            var m = parseInt(Math.random() * 80 + 20)
            if(arr.indexOf(m)==-1){
                arr.push(m)
            }else{
                i--
            }
        }
        console.log(arr)
        h.innerHTML=arr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值