js数组的增删改以及冒泡和选择排序

一、数组的操作方法

1、通过下标修改、删除或添加数组中的内容	
	var arr = [1,2,3,4]
	可以通过arr[0]=10,将arr中的1修改成10
	可以通过arr[3]=40,向arr的第4位添加数据
	如果有间隔的添加,比如arr[10]==100,则第10位为100,中间的都为空
	删除是通过缩短数组的长度,但只能从后面开始删除。
2、通过调用操作数组的方法进行增加和删除操作
	unshift()  起始新增,可以是一个或者多个,多个时使用“,”隔开      
	push()   结束新增,可以是一个或者多个,多个时使用“,”隔开     
	shift()   	起始删除,只能是一个,括号内不用写内容,写了也没用       
	pop()    结束删除,只能是一个,括号内不用写内容,写了也没用
	注:	unshift()  push() 返回值都是数组新的长度,也就是length属性值
	shift()  pop()  返回值都是删除单元存储的数据信息
3、数组的splice方法
	var res = arr.splice(2,2);	代表从数组的下标为2的位置往后删除2个数据
	var res2 = arr.splice(2,2,'武汉','加油'); 代表从数组下标为2的位置往后两个位置进	行替换。
4、数组的排序方法sort
	数组.sort()  默认按照首位数值排序,不是数值的实际大小
	数值.sort( function(a,b){return a-b} )  按照数值的实际大小排序 --- 从小到大
	数值.sort( function(a,b){return b-a} )  按照数值的实际大小排序 --- 从大到小

二、冒泡排序

 <script>
       var arr = [5,7,3,9,1,6,4,2,8];
        //每次都会将较大的数字的筛选出来放到后面,
        //等到第二位数确定时,第一位自然也确定了,所以只需(arr.length-1) -1次
       for(var j = 0 ; j <= (arr.length-1) -1 ; j++){
            //由于最后一位无法在跟后面的数进行比较,所以只到倒数第二位,即(arr.length-1) -1
            //又由于每次比较都会将最大的筛选出来放到最后,以筛选的可以不用再比较,即 (arr.length-1) -1-j
            for (var i = 0; i <= (arr.length-1) -1 - j ; i++) {
                if (arr[i] > arr[i + 1]) {
                    // 交换存储的数据
                    var middle = 0;
                    middle = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = middle;
                }
            }
        }
    </script>
    

三、选择排序

<script>
       var arr = [5,7,3,9,1,6,4,2,8];
        // 外层循环,实现排序循环次数,次数是单元个数 -1
        for(var j = 0 ; j <= arr.length-1 -1 ; j++){
            //min表示开始进行比较的位置,而j代表本次循环需要进行交换的下标
            var min = j; 
            for(var i = j+1 ; i <= arr.length-1 ; i++){
                // 如果有单元的数值,小于存储的索引对应的数值
                if(arr[min] > arr[i]){
                    // 不是做数据交换,是存储这个数值位置的索引下标
                    min = i;
                }
            }
            // 内层循环执行完毕,存储的索引下标如果不是起始的索引j
            // 就交换 min中存储的索引下标对应的数值 和 j索引下标应的数值
            // 就这去挨个确定第一位、第二位、第三位。。。
            if(min != j){
                var m = 0;
                m = arr[j];
                arr[j] = arr[min];
                arr[min] = m;
            }
        }
</script>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值