JavaScript数组的方法,和到目前为止所接触到的其他JavaScript对象一样,数组也有自己的属性和方法。本文我们来看一些常用的数组方法。
读者应在浏览器的JavaScript控制台中尝试示例代码片段,以确保能够得到相同的结果。
注意:数组和字符串的属性和方法具有相同的名称
你可能注意到了字符串和数组都有一个length属性。你还会注意到,数组与字符串的一些方法具有相同的名称,甚至具有几乎类似的功能。使用时,请注意这些方法所处理的数据类型,否则可能得不到预想的结果。
数组最常用的一些方法如表所示:
concat()
前文已经介绍过字符串的连接,JavaScript的数组也有一个concat()方法:
var myOtherArray = [′Thursday′,′Friday′];
var myWeek = myArray.concat(myOtherArray);
//数组myWeek包含的元素是′Monday′、′Tuesday′、′Wednesday′、′Thursday′和′Friday′
join()
这个方法可以把数组的全部元素连接在一起形成一个字符串:
var longDay = myArray.join(); // returns MondayTuesdayWednesday
使用这个方法时还可以有一个字符串参数,它会作为分隔符插入最终的字符串里:
var longDay = myArray.join("-"); // returns Monday-Tuesday-Wednesday
toString()
这个方法可以说是join()方法的一个特例。它返回由数组元素组成的字符串,用逗号分隔每个元素:
var longDay = myArray.toString(); // returns Monday,Tuesday,Wednesday
indexOf()
这个方法找到指定元素在数组里第一次出现的位置,返回指定元素的索引值;如果没有找到,就返回-1。
myArray.indexOf(′Tuesday′); //返回1(记住:数组索引从0开始)
myArray.indexOf(′Sunday′); //返回-1
lastIndexOf()
从名称中可以看出,这个方法的工作方式与indexOf()一样,但它返回指定元素在数组里最后一次出现的位置,而不是第一次出现的位置。
slice()
如果想从当前数组中提取一个子集,可以使用这个方法,在参数中指定开始的索引值和要提取的元素的数量就可以了。注意,在新的数组中,并不包含结束索引处的那个数组元素。
var myWeek = [′Monday′, ′Tuesday′, ′Wednesday′, ′Thursday′, ′Friday′];
var myShortWeek = myWeek.slice(1, 3);
// myShortWeek包含的内容是 [′Tuesday′, ′Wednesday′]
可以给slice()传入负值作为开始的索引或结束的索引。JavaScript将把负值解释为从序列的末尾开始的偏移位置。
var myWeek = [′Monday′, ′Tuesday′, ′Wednesday′, ′Thursday′, ′Friday′];
var myShortWeek = myWeek.slice(-3, 4);
// myShortWeek contains ["Wednesday", "Thursday"]
var myShortWeek = myWeek.slice(1, -2);
// myShortWeek contains ["Tuesday", "Wednesday"]
还要注意,两个参数都是可选的。如果没有指定开始索引,slice()将从索引0开始。如果没有提供结束索引,slice()将提取直到序列末尾的所有元素。
sort()
这个方法可以把数组元素按照字母顺序排列。
myWeek.sort()//返回′Friday′、′Monday′、′Thursday′、′Tuesday′、′Wednesday′
注意:排序数字
在包含了数值的一个数组上使用sort()时,要小心,它将会按照字母顺序来排序数字(也就是说,按照第一个数字来排序):
var myArray = [14, 9, 31, 22, 5];
alert(myArray.sort()); // 警告框显示14,22,31,5,9
这可能并不是想要的结果。
splice()
这个方法可以在数组里添加或删除指定的一个或多个元素。
与前面的其他方法相比,它的语法有点复杂:
array.splice(index, howmany, [new elements]);
第1个参数指定在数组的什么位置进行操作;第2个参数说明要删除多少个元素(设置为0表示不删除元素);第3个参数是可选的,是要插入的新元素列表。
myWeek.splice(2,1,"holiday")
这行代码指向索引为2的元素(′Wednesday′),删除1个元素(′Wednesday′),插入1个新元素(′holiday′;现在数组myWeek包含的元素是′Monday′ ′Tuesday′ ′holiday′′Thursday′和′Friday′。这个方法的返回值是被删除的元素。
注意:小心splice()方法
splice()方法会改变原数组。如果代码的其他部分仍需使用最初的数组,需要在使用splice()方法之前把它复制到新的变量里。
酷客网相关文章:
评论前必须登录!
注册