检索数组
检索数组中包含字符串类型的元素。
var a=[1,2,"a","b",true];
for(var i in a){
if(typeof a[i]=="string")
alert(a[i]);
}
var a=[1,2,"a","b",true];
for(var i=0;i<a.length;i++){
if(typeof a[i]=="string")
alert(a[i]);
}
操作元素
delete只能删除元素的值,而不是元素,因此delete运算符并不能改变数组长度。
Array对象方法:
- push() 给数组添加元素;在数组尾部操作。
var a=[98,55];
document.writeln("数组a长度"+a.length);
document.write("<br />");
document.writeln(a);
document.write("<br />");
a.push(29,78,23,45)
document.writeln("数组a长度"+a.length);
document.write("<br />");
document.writeln(a);
- pop() 删除并返回数组的最后一个元素;在数组尾部操作。
var a=[98,55,55,43];
a.pop();
document.writeln("数组a长度"+a.length);
document.write("<br />");
document.writeln(a);
- unshift() 在数组头部插入一个元素;在数组头部操作。
var a=[98,55,55,43];
document.writeln("数组a长度"+a.length);
document.write("<br />");
document.writeln(a);
document.write("<br />");
a.unshift(3);
document.writeln("数组a长度"+a.length);
document.write("<br />");
document.writeln(a);
- shift() 将元素移出数组;在数组头部操作。
var a=[98,55,55,43];
document.writeln("数组a长度"+a.length);
document.write("<br />");
document.writeln(a);
document.write("<br />");
a.shift();
document.writeln("数组a长度"+a.length);
document.write("<br />");
document.writeln(a);
- concat() 连接数组;
concat()方法可以跟随多个参数,并把它们作为元素按顺序连接到数组的尾部。concat()方法仅能打散一维数组。
concat()方法将创建并返回一个新数组,而不是在原来的数组基础上添加新元素。
var a=[98,55,55,43];
document.writeln("数组a长度"+a.length);
document.write("<br />");
document.writeln(a);
document.write("<br />");
var b=[44,77,21];
var c=b.concat(a);
document.writeln("数组c长度"+c.length);
document.write("<br />");
document.writeln(c);
操作子元素
Array对象的子数组操作方法:
- splice() 插入、删除或替换数组的元素。
参数是可选的:
- 第1个参数:操作的起始下标位置;
- 第2个参数:指定要删除元素的个数;
- 第3个及后面的参数:要插入的元素。如果不执行删除操作,将第二个参数设置为0.不能忽略不写。
说明:
- splice()方法的删除和插入操作是同时进行的。
- splice()方法执行的返回值是被删除的子数组。
- 当第一个参数值大于length属性值时,被视为在尾部操作,因此删除无效,但可以在尾部插入多个指定元素。
- 参数取负值问题。如果第一个参数取负值,则按绝对值从数组右侧往左定位;如果第二个为负值则视为0。
var a=[78,34,55,21,3,99,44];
document.writeln(a.length);
document.write("<br />");
document.write("原a数组:"+a);
document.write("<br />");
a.splice(1,2,11,66,33);
document.writeln(a.length);
document.write("<br />");
document.write("新a数组:"+a);
document.write("<br />");
- slice() 返回数组的一部分
参数说明:
- 第1个参数指定起始下标位置,包括该值指定的值;
- 第2个参数指定结束的位置,不包括指定元素。
说明:
- 该方法的参数可以自由设置。如果不传递参数,则不执行任何操作;
- 如果只指定1个参数,则表示从该参数值指定的下标位置开始,截取到数组的尾部所有元素。
- 当参数为负值时,表示按从右到左的顺序进行定位,即倒数定位法。如果起始下标或等于结束下标值,则不执行任何操作。
- 当起始参数值大于或等于length属性值将不会执行任何操作,返回空数组;如果第2 个参数值大于length值,则被视为length属性值。
- slice()方法将返回数组一部分(子数组),但不会修改原数组。
var a=[78,34,55,21,3,99,44];
var b=[22,33,44,55];
document.writeln("数组b长度:"+b.length);
document.write("<br />");
document.write(b);
var c=b.slice(1,3);
document.write("<br />");
document.write(c);
document.write("<br />");
document.writeln("数组c长度:"+c.length);
数组排序
Array对象的数组排序方法
- reverse() 颠倒数组中元素的顺序
reverse()不需要参数。
var a=[2,4,5,9,3,6,7];
document.write("原数组:")
document.write(a);
document.write("<br/>");
a.reverse();
/*a.sort();*/
document.write("颠倒后的数组:")
document.write(a);
document.write("<br/>");
- sort() 对数组元素进行排序
说明:
- sort()方法能够根据一定的条件对数组元素进行排序。如果没有参数,则按字母顺序对数组中的元素进行排序。
- 所谓的字母顺序,实际上是根据字母在字符编码表中的顺序进行排列的,每个字符在字符表中都有一个唯一的编号。
- 如果元素不是字符串,则sort()方法会试图把数组的元素都转换成字符串,以便进行比较。
- 在排序时,sort()方法将根据元素值进行逐位比较,而不是根据字符串的个数进行排序。
- 在排序时,首先比较每个元素的第一个字符,第一个字符相同的情况下再比较第2个字符。以此类推。
- 在任何情况下,数组中的undefined的元素都被排列在数组末尾。
- sort()方法是在原数组基础上进行排序操作的,不会创建新的数组。
var a=[2,4,5,9,3,6,7];
document.write("原数组:")
document.write(a);
document.write("<br/>");
/*a.reverse();*/
a.sort();
document.write("排序后的数组:")
document.write(a);
document.write("<br/>");