冒泡排序算法
<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 个位置。