js第二课
一,常用对象
1.array
<script type="text/javascript" src="JS/JScript.js"></script> <script type="text/javascript"> //创建 var a = [0, 1, 'Bugs', 'Bug']; var a = []; //空数组 var a = [1, ['Bugs', 'Bug'], 2];//嵌套数组 //函数创建 var a = new Array(3); var a = new Array(1, 2, 'Bugs', 'Bug'); var a = new Array(1, new Array('Bugs', 'Bug', 1), 2); </script>
长度(Length)长度可写。
<script type="text/javascript" src="JS/JScript.js"></script> <script type="text/javascript"> //长度Length var a = new Array('Bugs', 1); //添加元素 a[a.length] = 'Bug'; </script>
若:length所赋的值>length :会添加新的未定义的元素(undefined)到数组末尾,
< :后再数组末尾删除一些元素。
2.数组的操作
添加
使用unshift():将新元素添加到数组头部。数组中的所有元素向后移一位。长度加1.
或者push():与unshift()方法相反,将新的元素添加到数组末尾,数组中的所有元素位置不变,长度加1。
<script type="text/javascript" src="JS/JScript.js"></script> <script type="text/javascript"> //长度Length var a = new Array('Bug', 1); //前添加元素 a.unshift('Bugs'); var a=new Array('Bugs'); //后添加元素 a.push('Bug'); </script>
删除
使用shift():删除数组的第一个元素,数组中的其他元素向前移一位,长度减1,
pop():删除数组中的最后一个元素,其他元素不变,长度减1,
splice(arg1,[arg2]):arg1表示操作数组元素的index,arg2表示操作元素的个数,
若:arg2省略,默认操作元素从数组的index到数组结束。(IE中,此方法不被执行)。
<script type="text/javascript" src="JS/JScript.js"></script> <script type="text/javascript"> //长度Length var a = new Array(1, 'Bugs', 'Bug'); //在前删除元素 a.shift(); alert(a.length); //2 var a = new Array('Bugs', 'Bug', 1); //在后删除元素 a.pop(); alert(a.length); //2 var a = new Array('Bugs', 'Bug', 1, 2); a.splice(2, 2); alert(a.length); //2 var a = new Array('Bugs', 'Bug', 1, 2); a.splice(2); alert(a.length);//4 </script>
替换
splice()方法返回被删除的元素组成的数组,splice()除了两个参数外还有多参数的splice(arg1,arg2,arg3,....)
这些元素:从arg3开始至之后的元素,会在删除操作完成后被当做数组的新元素从arg1的index开始依次插入进数组。
<script type="text/javascript" src="JS/JScript.js"></script> <script type="text/javascript"> //长度Length var a = new Array('Bugs', 2, 1, 3, 'Bug'); a.splice(1, 3, ' '); //a['Bugs',' ','Bug'] </script>
取得数组的片段
slice(arg1,[arg2]):参数arg1指从开始的数组index,到arg2结束的(index-1) 元素,
参数可以是负数slice(-arg1,[-arg2])从数组后面开始数而已。
<script type="text/javascript" src="JS/JScript.js"></script> <script type="text/javascript"> //长度Length var a = new Array(2, 'Bugs', 'Bug', 1, 3); a.slice(1, 3); //a['Bugs','Bug'] a.slice(-2, -4); //a['Bugs','Bug'] </script>
翻转数组
reverse()方法。
<script type="text/javascript" src="JS/JScript.js"></script> <script type="text/javascript"> //长度Length var a = new Array('Bug', 'Bugs'); a.reverse(); //a['Bugs','Bug']
将数组转换成字符串
使用join([arg1])方法可以将数组的所有元素使用指定的字符(arg1)连接成一个新的字符串,若没有arg1默认为”,“连接.
<script type="text/javascript" src="JS/JScript.js"></script> <script type="text/javascript"> //长度Length var a = ['Bugs', 'Bug']; a.join(' '); //'Bugs Bug' alert(a);
</script> //IE10下含参方法未被正确执行
元素排序
使用sort([arg1]).当sort()方法不含参数时,排序时会将元素转换成字符串,并按照首个字符的ASCⅡ从小到大排列,若含有未定义的元素,会被放到数组的末尾。
若需要将数组按照一定规则排序可以传进来一个比较函数(arg1),在排序时,会从数组中每次抽取两个元素传给函数,函数会根据返回值决定两个元素的位置(类似冒泡排序):1.返回值>0 第一个元素排在第二个元素的后面,2.返回值<0 第一个元素排在第二个元素的前面,3.返回值=0 元素位置不变。
<script type="text/javascript" src="JS/JScript.js"></script> <script type="text/javascript"> //长度Length var a = [2, 3, 'Bugs', 1, 'Bug']; //a.sort(); //'1,2,3,Bug,Bugs' a.sort(function (x, y) { return x - y; //2,3,Bugs,1,Bug //return y - x; // 3,2,Bugs,1,Bug //return 0; //2,3,Bugs,1,Bug }); alert(a);// </script>