补:冒泡牌排序
解析:1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。
2.第一轮的时候最后一个元素应该是最大的一个。
3.按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较
案例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
// 第一种
var arr = [23, 1, 2, 0, 11];
var times = 0;
for(var i = 0; i < arr.length - 1; i++) { //控制比较的轮数
for(var j = 0; j < arr.length - i - 1; j++) { //控制比较的次数
var temp;
if(arr[j] > arr[j + 1]) { //如果前面的数据比后面的大就交换
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for(var i = 0; i < arr.length; i++) {
document.writeln(arr[i]);
}
document.write('<hr/>');
// 第二种
var arr = [23, 1, 2, 0, 11];
var times = 0;
for(var i = 0; i < arr.length - 1; i++) {
for(var j =j + 1; j < arr.length; j++) {
var temp;
if(arr[i] > arr[j]) { //如果前面的数据比后面的大就交换
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
console.log('第'+(++times)+'次排序结果为:'+arr);
}
}
</script>
</head>
<body>
</body>
</html>
字符串(String)对象及处理字符串的方法
JavaScript 中常用的内置对象有很多种。所谓的内置对象,跟内置函数理解类似,说白了就是 JavaScript 内部定义好的东西,可以让我们直接拿来用而无需自己定义。
比较常用的 JavaScript 内置对象主要有以下几种:
(1)字符串对象 String;
(2)日期对象 Date;
(3)数组对象 Array;
(4)数值对象 Math 和 Number
1. 字符串的属性 length 的介绍
在 JavaScript 中,对于字符串来说,要掌握的属性就只有一个,那就是 length属性。我们可以通过 length 属性来获取字符串的长度。
语法:字符串名称.length
2. 处理字符串方法的介绍
(1) Match()方法的介绍
在 JavaScript 中,使用 match()方法可以从字符串内索引指定的值,match()方法类似于 indexOf()方法,但是它返回的是指定的值,而不是字符串的位置
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
// (1)match():返回指定的值
var str1='Html css JavaScript';
document.write(str1.match('Html')); //返回Html
document.write(str1.match('html')); //返回null
document.write(str1.match('JavaScript')); //返回JavaScript
</script>
</head>
<body>
</body>
</html>
(2) Search()方法
在 JavaScript 中,search() 方法用于检索字符串中指定的子字符串,在字符串中检索的字符串不存在则返回-1, 存在返回索引位置,是以子字符串的首个字符索引输出
var str2='I Love JavaScript';
document.write(str2.search('Love'));//返回2
document.write(str2.search('love'));//返回-1
(3) IndexOf()方法:返回在字符串元素第一次出现的索引位置
var str2='I Love JavaScript';
document.writeln(str2.indexOf('a','0'));//返回结果是8
document.writeln(str2.indexOf('a',0));//返回结果是8
document.write(str2.indexOf('a',9));//返回结果为10
document.write(str2.indexOf('a',16));//返回结果为-1,表示没有查询到数据
(4) Replace()方法:在字符串中用一些字符串替换另一些字符串 ,其中第一个值为旧字符,第二个值为新字符
var str2='I Love JavaScript';
document.writeln(str2.replace('Love','like'));//返回结果为I like JavaScript
(5)charAt()用来获取字符串中某一个字符,n表示的是字符串中字符的下标
var str3='what are you 弄啥嘞';
document.write(str3.charAt(4)); //输出空格
document.write(str3); //输出字符串
for(var i=0;i<str3.length;i++){
document.write(str3.charAt(i)+'-');
}
(6)字符串大小写的转换: toUpperCase() 大写, toLowerCase()小写,其中,toLowerCase()方法将大写字符串转换为小写字符串;
toUpperCase()将小写字符串转换为大写字符串
var str4='I have a Dream';
//转换为大写
document.write(str4.toUpperCase());
//转换为小写
document.write(str4.toLowerCase());
(7)concat():连接字符串, 可以连接 2 个或多个字符串。
语法:字符串 1.concat(字符串 2,字符串 3,…,字符串 n);
说明:concat()方法将“字符串 2,字符串 3,…,字符串 n”按照顺序连接到字符串 1的尾部,并返回连接后的字符串
例1:
var str5='I like red';
// document.write(str5.concat(' and yellow......','you too'));
var str6=str5.concat(' and yellow......','you too');
// alert(str5); 显示的结果还是为 'I like red'
document.write(str6);
例2:
<script type="text/javascript">
var str1="毛扇指千阵,";
var str2="铁马踏冰河,";
var str3="黄沙破楼兰。";
var str4=str1+str2+str3;
var str5=str1.concat(str2,str3);
document.write(str4+"<br/>");
document.write(str5);
</script>
(8) 比较字符串localeCompare()
语法:字符串 .localeCompare(字符串 2)
说明:比较完成后,返回值是一个数字。
(1)如果字符串 1 小于字符串 2,则返回小于 0 的数字;
(2)如果字符串 1 大于字符串 2,则返回数字 1;
(3)如果字符串 1 等于字符串 2,则返回数字 0;
var str7="AavaScript";
var str8="bvaScript";
document.write(str7.localeCompare(str8));//返回-1
document.write('<hr />');
var str7="AavaScript";
var str8="AvaScript";
document.write(str7.localeCompare(str8));//返回0
(9) 分割字符串 split()方法
语法:字符串.split(分隔符)
说明:返回结果为一个数组,分割符可以是一个字符、多个字符或一个正则表达式。分割符并不作为返回数组元素的一部分
var str9='I Love JavaScript';
var arr_01=str9.split(' ');
alert(arr_01);//返回I,Love,JavaScript
// alert(arr_01.length);//返回3
(10)从字符串截取字符串 用来提取字符串中的某一部分字符串
语法:字符串.substring(开始位置,结束位置)
说明:开始位置是一个非负的整数,表示从哪个位置开始截取。结束位置也是一个非负的整数,表示在哪里结束截取。
var str9=',I LoveJavaScript,';
document.write(str9.substring(2,5));//返回Lov
// document.write(str9.substring(1,str9.length-1));//返回Love JavaScrip
// document.write(str9.substring(2,0));//返回 I
document.write(str9.substring(0,100));//返回I Love JavaScript
问题: substring()和substr()之间的区别?
(1)只有一个参数时,输出结构相同
(2)两个参数时,substring是获取从start开始到end之间的字符串,而substr是获取从start开始后end的字符串,(即从substr接收的则是
起始位置和所要返回的字符串长度。) substring不包含end位的字符串,substr包含.
var str10='ILoveJavaScript';
document.writeln(str10.substring(2,5));//返回ove
document.writeln(str10.substr(2,5));//返回oveJa
问题:按照字符串的每一个字符输出到页面?
// 遍历数组
var str='what are you doing?';
for(var i = 0; i < str.length; i++) {
document.write(str.charAt(i) + '-');
}
document.write('<br />');
问题: 将每一个字符放置到一个数组中?
<script type="text/javascript">
var str='what are you doing?';
var strString = new Array();
for(var i = 0; i < str.length; i++) {
strString[i] = str.charAt(i);
}
// document.write(strString);
for(var i = 0; i < strString.length; i++) {
document.write(strString[i]);
}
</script>