站长资源
中国站长网站

Js操作数组对象常用的方法总结

转换方法

因为JavaScript内部机制(继承),所有的对象都具有toLocalString() 、toString()、valueOf()方法,Array也不例外so:

var colors = ["red", "blue", "green"];

alert(colors.toString()); // red,blue,green

alert(colors.valueOf()); // red,blue,green

alert(colors); // red,blue,green

数组继承的这些方法,在默认情况下会以逗号分隔的字符串形式返回数组项目, 而实用join()方法则可以使用不同的分隔符来构建字符串例如:

alert(colors.join("|")); //red|blue|green

栈方法

具体来说,数组可以表现的像栈一样,在栈中插入叫推入,栈中移除叫弹出, so实际上就是 push()、pop(),

push方法可以接受任意数量的参数,把它们逐个的题啊安驾到数组末尾,并返回修改后的数组长度,而pop方法则是从数组末尾移除最后一项:

var colors = new Array(); // 创建一个数组

var count = colors.push("red", "green"); // 推入两项

alert(count); //2

count = colors.push("black"); // 推入另一项

alert(count); //3

var item = colors.pop(); // 取得最后一项

alert(item); //"black"

alert(colors.length); //2

队列方法

push()是向数组末端添加项的方法,因此要模拟队列只需一个从数组前端取得项的方法。实现这一操作的数组方法就是shift(),它能够移除数组中的第一个项并返回该项,同时将数组长度减1。结合使用shift()和push()方法,可以像使用队列一样使用数组。

var colors = new Array(); //创建一个数组

var count = colors.push("red", "green"); //推入两项

alert(count); //2

count = colors.push("black"); //推入另一项

alert(count); //3

var item = colors.shift(); //取得第一项

alert(item); //"red"

alert(colors.length); //2

ECMA还提供了一个与shift(), 用途相反的方法unshift(),在数组的前端添加项,从数组的末端移除。

重排序方法

数组中有两个直接用来排序的方法 即reverse()、sort() ,反转数组和数组排序 ,这里不做赘述。

操作方法

主要有三个concat()、slice()、splice(),

concat的主要用途是基于当前数组中的所有项目创建一个新的数组,也能合并数组例如:

var colors = ["red", "green", "blue"];

var colors2 = colors.concat("yellow", ["black", "brown"]);

alert(colors2); //red,green,blue,yellow,black,brown

slice基于当前数组中的一或多个项创建一个新数组,可以接受一或两个参数,即要返回项的起始和结束位置(注:不包括结束位,该方法不会影响原始数组)例如:

var colors = ["red", "green", "blue", "yellow", "purple"];

var colors2 = colors.slice(1);

var colors3 = colors.slice(1,4);

alert(colors2); //green,blue,yellow,purple

alert(colors3); //green,blue,yellow

splice()方法是功能最强大的数组方法,可对数组项进行删除、插入、替换:

splice(0,2)会删除数组中的前两项

splice(2,0,"red","green")会从当前数组的位置2 开始插入字符串"red"和"green"

splice (2,1,"red","green")会删除当前数组位置2 的项,然后再从位置2 开始插入字符串"red"和"green"

splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何项,则返回一个空数组)。

位置方法

indexOf()和lastIndexOf()。这两个方法都接收两个参数:

要查找的项和(可选的)表示查找起点位置的索引。其中,indexOf()方法从数组的开头(位置0)开始向后查找,lastIndexOf()方法则从数组的末尾开始向前查找, 由于这两种方法对于IE的支持比较差这里就不多过的描述。

迭代方法

迭代方法有every()/filter()/forEach()/map()/some() 其中部分兼容性不佳, 主力主要介绍forEach和map:

map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组 例如:

var numbers = [1,2,3,4,5,4,3,2,1];

var mapResult = numbers.map(function(item, index, array){

return item * 2;

});

alert(mapResult); //[2,4,6,8,10,8,6,4,2]

forEach():对数组中的每一项运行给定函数。这个方法没有返回值。本质上和for循环迭代数组一样:

var numbers = [1,2,3,4,5,4,3,2,1];

numbers.forEach(function(item, index, array){

//执行某些操作

});

归并方法

两个归并数组的方法:reduce()和reduceRight()。这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。这两个方法都接收两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值。

使用reduce()方法可以执行求数组中所有值之和的操作,比如:

var values = [1,2,3,4,5];

var sum = values.reduce(function(prev, cur, index, array){

return prev + cur;

});

alert(sum); //15

本文出处:来自互联网信息共享,请勿相信收费信息站长资源 » Js操作数组对象常用的方法总结

评论 抢沙发

评论前必须登录!