氣泡排序和字串(String)物件及處理字串的方法
阿新 • • 發佈:2018-12-14
氣泡排序
第一種方法
var times=0;
var arr=[12,3,6,9,77,37];
for(var i=0;i<arr.length-1;i++){ //控制比較的行數
for (var j=0;j<arr.length-i-1;j++) { //控制比較的次數
var kong;
if (arr[j]>arr[j+1]) {
kong=arr[j];
arr[j]=arr[j+1];
arr[j+1]=kong;
}
console.log('第'+(++ times)+'次排序結果為:'+arr);
}
}
// for (var i=0;i<arr.length;i++) {
// document.writeln(arr[i]);
// }
第一輪比較了5次(arr.length-i-1)
第1次排序結果為:3,12,6,9,77,37
第2次排序結果為:3,6,12,9,77,37
第3次排序結果為:3,6,9,12,77,37
第4次排序結果為:3,6,9,12,77,37
第5次排序結果為:3,6,9,12,37,77
第二輪比較了4次(arr.length-i-1)
第6次排序結果為:3,6,9,12,37,77
第7次排序結果為:3,6,9,12,37,77
第8次排序結果為:3,6,9,12,37,77
第9次排序結果為:3,6,9,12,37,77
第三輪比較了3次(arr.length-i-1)
第10次排序結果為:3,6,9,12,37,77
第11次排序結果為:3,6,9,12,37,77
第12次排序結果為:3,6,9,12,37,77
第四輪比較了2次(arr.length-i-1)
第13次排序結果為:3,6,9,12,37,77
第14次排序結果為:3,6,9,12,37,77
第五輪比較了1次(arr.length-i-1)
第15次排序結果為:3,6,9,12,37,77
第二種方法
var arr1=[12,3,10,64,33,2];
for (var a=0;a<arr1. length-1;a++) { //控制比較的行數
for (var b=a+1;b<arr.length;b++) { //控制比較的次數
var tamp;
if (arr1[a]>arr1[b]) {
tamp=arr1[a];
arr1[a]=arr1[b];
arr1[b]=tamp;
}
console.log('第'+(++times)+'次排序結果為:'+arr1);
}
}
// for (a=0;a<arr1.length;a++) {
// document.writeln(arr1[a]);
// }
字串(String)物件及處理字串的方法
length 獲取字串的長度
操作字串資料的方法
①match():返回指定的值
document.write('match():返回指定的值'+'<br />');
var str1='翩翩公子 溫柔小姐 嬌嬌公主 尊貴殿下 白馬王子 勇猛將軍';
// alert(str1.length); //獲取字串長度
document.write(str1.match('公子')+'<br />'); //顯示結果為公子
document.write(str1.match('公子小姐')+'<br />'); //顯示結果為null,不存在
document.write(str1.match('溫柔小姐嬌嬌公主')+'<br />'); //顯示結果為null,不存在
②search():檢索字串中指定的子字串
document.write('search():檢索字串中指定的子字串'+'<br />');
var str2='i like 呦呦切克鬧,煎餅果子來一套';
// 返回在字串中索引位置在字元中首次出現的索引位置
document.write(str2.search('呦呦')+'<br />'); //返回結果為7
// 在字串中,檢索的子字串不存在,則返回-1
document.write(str2.search('Like')+'<br />'); //返回結果為-1
③indexOf(): 返回某個指定字串值在字串中首次出現的索引位置
document.write('indexOf(): 返回某個指定字串值在字串中首次出現的索引位置'+'<br />');
var str3='嚕啦啦嚕啦啦嚕啦嚕啦類';
document.write(str3.indexOf('嚕','0')+'<br />'); //返回結果為0
document.write(str3.indexOf('嚕','5')+'<br />'); //返回結果為6
// 查詢不到時返回-1
document.write(str2.indexOf('嚕','18')+'<br/>'); //返回結果為-1
④replace():用一些字串替換另一些字串
document.write('replace():用一些字串替換另一些字串'+'<br />');
var str4='你是誰的白衣少年';
// document.write(str4.replace('誰','我')+'<br />'); //顯示結果:你是我的白衣少年
var NewStr4=str4.replace('白衣','心愛');
document.write(NewStr4+'<br />'); //顯示結果:你是誰的心愛少年
⑤charAt(n):獲取字串中的某一個字元
//用來獲取字串中某一個字元,n表示的是字串中字元的下標
document.write('charAt(n):獲取字串中的某一個字元'+'<br />');
var str5='陌上人如玉,公子世無雙';
// alert(str5);
document.write(str5.charAt(0));
document.write(str5.charAt(1));
document.write(str5.charAt(2));
document.write(str5.charAt(3));
document.write(str5.charAt(4));
document.write(str5.charAt(5));
document.write(str5.charAt(6));
document.write(str5.charAt(7));
document.write(str5.charAt(8));
document.write(str5.charAt(9));
document.write(str5.charAt(10));
//顯示結果為:陌上人如玉,公子世無雙
document.write('<br />');
// 遍歷出所有字串(按字串的每一個字元輸出)
for(var i=0;i<str5.length;i++){
document.write(str5.charAt(i)); //顯示結果為:陌上人如玉,公子世無雙
}
將一個字元放置到一個數組裡
var str5='陌上人如玉,公子世無雙';
var strString=new Array();
for(var i=0;i<str5.length;i++){
strString[i]=str5.charAt(i);
}
// document.write(strString); //顯示結果:陌,上,人,如,玉,,,公,子,世,無,雙
// 遍歷陣列
for(i=0;i<strString.length;i++){
document.write(strString[i]); //顯示結果為:陌上人如玉,公子世無雙
}
⑥toUpperCase() 大寫, toLowerCase()小寫 字串大小寫的轉換
document.write('toUpperCase() 大寫, toLowerCase()小寫 字串大小寫的轉換'+'<br />');
var str6='I have a pen,I have a apple,apple,pen';
//轉換為大寫
document.write(str6.toUpperCase()); //顯示結果為:I HAVE A PEN,I HAVE A APPLE,APPLE,PEN
document.write('<br />');
//轉換為小寫
document.write(str6.toLowerCase()); //顯示結果為:i have a pen,i have a apple,apple,pen
document.write('<br />');
⑦concat():連線字串
// 字串1.concat(字串2,字串3....);
document.write('concat():連線字串'+'<br />');
var str7='我有一頭小毛驢,';
document.write(str7.concat('我從來也不騎,','有一天我心血來潮騎著去趕集'));
document.write('<br />');
var str8=str7.concat('我從來也不騎,有一天我心血來潮騎著去趕集');
document.write(str8);
document.write('<hr />');
⑧localCompare(): 用來比較兩個字串,返回一個數字
字串1.localeCompare(字串2);
(1)如果字串 1 小於字串 2,則返回小於 0 的數字;
(2)如果字串 1 大於字串 2,則返回數字 1;
(3)如果字串 1 等於字串 2,則返回數字 0;
⑨split():分割字串返回結果為一個數組: 分隔符為字串中的字元
document.write('split():分割字串返回結果為一個數組: 分隔符為字串中的字元'+'<br />');
var str9='我好 餓我好餓我好 餓餓餓餓餓';
var str9_01=str9.split('好');
// alert(str9_01);
document.write(str9_01); //顯示結果為:我, 餓我,餓我, 餓餓餓餓餓
// alert(str9_01.length); //返回結果: 4
⑩subString(): 擷取字串中某一部分字串
// 無關順序
document.write('subString(): 擷取字串中某一部分字串'+'<br />');
var str10='0123456789';
document.write(str10.substring(2,5)+'<br />'); //擷取結果為:234
document.write(str10.substring(0,str8.length)+'<br />'); //擷取全部
document.write(str10.substring(12,6)+'<br />'); //擷取結果為:6789
document.write(str10.substr(2,5)); //擷取結果為:23456
substring()和substr()之間的區別?
substring():第二個數值表示擷取到這一索引位置,但不包含此索引位置的成員
substr():第二個數值表示擷取的長度