5、JS之内置对象加冒泡排序

1、冒泡排序

让一个数字和后面的数字进行依次的比较,如果发现前面的大于后面的,就把前面的和后面的进行位置互换,外层从0开始,内层从0+1开始。
代码:

var arr = [7,8,1,4,5,6,2,3,5];
for (var i=0 ;i<arr.length;i++){
                //8 //1
    for (var j =i+1;j<=arr.length;j++){
        if (arr[i]>arr[j]){
            var c = arr[i];
            arr[i] = arr[j];
            arr[j] = c;
            // document.write(arr+'<br>');//可以看到每次的变化
        }
    }
}
document.write(arr);

调用封装好的方法 升序:

var arr = [7,8,1,4,5,6,2,3,5];
arr.sort();
document.write(arr);

调用封装好的方法 降序:

var arr = [7,8,1,4,5,6,2,3,5];
arr.sort(function (a, b) {
    return b-a;
})
document.write(arr);

2、js内置对象上

1、什么是对象

js是一个基于对象和事件驱动的脚本语言。

我们在操作任何一个东西之前,都可以称这个东西是对象

2、对象包含由什么构成

对象有属性和方法构成。
1、属性:
是静态的具有某个特性的统称呼:
比如:把狗看做一个对象,
颜色就是它的属性
2、方法:
方法是动态的行为操作,
比如:把狗看做一个对象,
黑色就是它的方法,
跑就是他的方法,
叫就是他的方法。

3、方法

上面我们已经大概了解了方法。
方法在代码中的体现就是用函数来体现。

4、内置对象

就是js这个语言,开发者已经写好的对象,我们通过这个对象直接就可以调用这些方法来完成某些操作。

1、比如我们上篇博客的数组,数组就是一个对象,我们用到的arr.push(), arr.unshif(). arr.splice()等,就是对象的方法,我们直接来调用了。arr.length就是对象的属性

2、代码中区分属性和方法,就看有没有小括号,有小括号就是方法,没有就是属性。

5、内置对象之 Array对象

1、Array(数组)对象
数组:具有相同类型的一个或者多个值的集合。

2、创建数组的方法:

1.var 数组名 = [元素1,元素2.....];
2.var 数组名 = new Array(元素1,元素2.....);

js中严格区分大小写
比如上面创建数组的第二种方法,如果把Arry写为arry,则不是一个数组。

3、array对象的属性和方法:
属性:
length 设置或者返回数组中元素的数量。
设置数组长度:
数组名.length = 长度;
例子:

var arr = new Array(1,2,3,4,5);
arr.length=4;
document.write(arr);

此时只能在页面显示1,2,3,4因为设置了数组的长度是4.

方法:
1、join( );
通过一个分隔符,把数组内的所有元素拼接成一个字符串。
例子:

var arr = [1,2,3,4,5];
document.write(arr.join('-'));//输出:1-2-3-4-5

2、sort();
1、对数组进行排序,升序。

var arr = [6,2,4,5,3];
document.write(arr.sort());//输出:2,3,4,5,6

2、对数组进行排序,降序

var arr = [5,4,6,3,2];
arr.sort(function (a, b) {
   return b-a;
})
document.write(arr);//6,5,4,3,2

代码中:
a代表比的数,b代表被比的数。

3、打乱一个数组(了解)

var arr = [1,2,3,4,5,6,7,8];
arr.sort(function (a, b) {
    return Math.random()>0.5?a-b:b-a;
})

document.write(arr);

其中Math.random()方法生成的是一个随机数,范围是0-1之间,我们用三目运算符进行判断,所以>0.5的概率是50%,如果大于,就让ab互换位置,如果小于,就让b-a互换位置,底层运用的还是冒泡排序,一个个的进行比较。

4、push
向数组末尾添加一个或多个新的元素,并自动更新数组长度。

添加多个:

var arr = [1,2,3,4,5,6,7,8];
arr.push(11,12,13,14,15);
document.write(arr);//显示:1,2,3,4,5,6,7,8,11,12,13,14,15

5、concat
合并两个数组,把两个数组合并起来:
语法:
合并的数组名.concat(被合并的数组名);
代码示例:
// 合并数组

var arr1 = [1,2,3,4];
var arr2 = [5,6,7,8];
var arr1 =arr1.concat(arr2);
document.write(arr1);//输出:1,2,3,4,5,6,7,8

6、splice
语法:
数组名.splice(a,b); a从哪里开始删除,b删除几个。

7、判断一个数组里面a的出现次数

<script>
    var  arr=["b",'a','c','a','g','j','a','c','b'];
    var indxt = 0; //用来计数
    for (var i = 0;i<arr.length; i++){
        if (arr[i]=== 'a'){
            indxt++;
        }
    }
    document.write(indxt);
</script>

8、给一个数组去重并排序var arr=[5,4,26,9,4,8,5,14];

代码:

<script>
    var arr=[5,4,26,9,4,8,5,14];
    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);
                j--;
            }
        }
    }
    arr.sort(function (a, b) {
        return b-a;
    })
    //arr =arr.sort();
    document.write(arr);
</script>

6、内置对象之:Data

Data对象是一个日期对象,里面包含了很多和日期相关的方法和属性。
1、创建Data对象
var 变量名 = new Data();
变量名就是我们的日期对象。(用变量名接收了)
举例:

var data = new Data();

2、Data对象的方法
方法:

getFullYear() 返回 Date 对象的年份,其值为4位数
getMonth() 返回 Date 对象的月份,其值介于0~11之间(注:0-1月份)
getHours() 返回 Date 对象的小时数,其值介于0~23之间
getHours() 返回 Date 对象的小时数,其值介于0~23之间
getMinutes() 返回 Date 对象的分钟数,其值介于0~59之间
getSeconds() 返回 Date 对象的秒数,其值介于0~59之间
getDay() 返回 Date 对象的星期中的每一天,其值介于0~6之间(注:0-周日)

3、判断第几天以后是星期几

<script>
    var date = new Date();
    var dayArr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
    document.write(dayArr[(date.getDay()+10)%7]);

</script>

4、做一个简易的时钟
setIntrval(函数,时间),无限循环,每隔多少毫秒执行一次函数
代码:

每100毫秒就在页面写一个1.

setTimeout(函数,时间),多长时间后执行一次该函数,只执行一次

代码:
setTimeout(function () {
document.write(1)
},1000)

1000毫秒后写一次1,只写一次。

代码:

<body>

<div></div>
<script>
    var di = document.getElementsByTagName('div')[0];
    setInterval(function () {
        var date = new Date();
        var year = date.getFullYear();//年
        var mon = date.getMonth();//月
        var da = date.getDate();//日
        var hou = date.getHours();//时
        var min = date.getMinutes();//分
        var sen = date.getSeconds();//秒
        var day = date.getDay();//星期几

        di.innerHTML = year+'年'+mon+'月'+da+'日'+hou+':'+min+':'+getTime(sen)+'&nbsp;&nbsp'+'星期'+getTime(day);

        // document.write(year+'年'+mon+'月'+da+'日'+hou+':'+min+':'+sen+'&nbsp;&nbsp'+'星期'+day);
    },100)

    function getTime(time) {
        return time<10?'0'+time:time;
    }


</script>

</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值