javascript基础四(冒泡排序算法,array.prototype属性)

冒泡排序算法

<script>
        function bubblesort(arr){
        var tem;
            for(var r=1;r<arr.length;r++){
                for(var i=0;i<arr.length-r;i++){
                    if(arr[i]>arr[i+1]){
                        // array[i]+=array[i+1];
                        // array[i+1]=array[i]-array[i+1];
                        // array[i]=array[i]-array[i+1];

                        tem = arr[i];
                        arr[i]=arr[i+1];
                        arr[i+1]=tem;
                    }
                }
            }
            return arr;
        }
        var array=[6,3,26,7,32,1,34,22,33];
        document.write(array+"\n");
        var arrsorted = bubblesort(array);
        document.write(arrsorted);
    </script>

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。
冒泡排序算法的原理如下:
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

数组大写转化

<script>
        Array.prototype.myUcase=function()
    {
        for (i=0;i<this.length;i++)
        {
            this[i]=this[i].toUpperCase();
        }
    }  

    var fruits=["Banana","Orange","Apple","Mango"];
    fruits.myUcase();
    document.write(fruits);
    </script>

fruits 数组现在的值为:

BANANA,ORANGE,APPLE,MANGO
总结: prototype 属性使您有能力向对象添加属性和方法。
当构建一个属性,所有的数组将被设置属性,它是默认值。
在构建一个方法时,所有的数组都可以使用该方法。

注意: Array.prototype 单独不能引用数组, Array() 对象可以。
注意: 在JavaScript对象中,Prototype是一个全局属性。

数组去重

<script>
    Array.prototype.uniq = function(){
        var resArr = [];
        var flag = true;
        for(var i = 0;i<this.length;i++){
            if(resArr.indexOf(this[i])==-1){
                if(this[i]!=this[i]){//判断NaN
                    if(flag){
                        resArr.push(this[i]);
                        flag = false;
                    }
                }else{
                        resArr.push(this[i]);
                    }
            }
        }
        return resArr;
    }

    var array = [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN];
    var resArr = array.uniq();
    document.write(resArr);
    </script>

1,NaN 即非数值(Not a Number),NaN 属性用于引用特殊的非数字值,该属性指定的并不是不合法的数字。
NaN 属性 与 Number.Nan 属性相同。
提示: 请使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己。
2,push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
3.indexOf() 方法可返回数组中某个指定的元素位置。
该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。
如果在数组中没找到指定元素则返回 -1。
4.查找数组中的 “Apple” 元素:
var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
var a = fruits.indexOf(“Apple”);
a 结果输出:
2
以上输出结果意味着 “Apple” 元素位于数组中的第 3 个位置。

猜你喜欢

转载自blog.csdn.net/Mr_Quinn/article/details/88384241
今日推荐