在js中数组非常经常用到,熟练掌握数组的方法能够大大的提高对自己的变成效率,最近解除php,学得非常皮毛,遇到一个问题,自己一直陷入foreach循环如何解决的死循环中。结果一直没能很好的解决,回来讨教了一下同学,更加觉得数组的一些方法很好用,所以有必要整理一下数组的一些方法,希望自己能牢记它们。
一,js数组的操作方法:
参照w3c内容:http://www.jb51.net/w3school/js/jsref_obj_array.htm 以及《javascript权威指南》和《jQuery权威指南》再结合自己平时工作学习。再次温习一下数组的操作方法。
1,稀疏数组(感觉这个平时应该挺少用到的,所以大概记住个概念就好):稀疏数组就是包含从0开始的不连续索引的数组;
2,数组元素的添加和删除
添加:push();
删除:pop(); 删除数组最后一个值,并返回该值。(与push()一起使用)
删除:shift(); 从数组头部删除一个元素;对数组使用该方法会改变数组长度,会将剩下的所有元素索引下降到比当前低1的地方。(与unshift()一起使用)
删除:delete(); 对一个数组使用该方法,不会改变数组的长度(与shift()不同),会让这个数组变成一个稀疏数组。
多功能方法:splice() ;可插入删除替换数组元素 ;
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
使用方法和操作说明如下
arrayObject.splice(index,howmany,item1,.....,itemX)
参数 | 描述 |
---|---|
index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 |
howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
item1, ..., itemX | 可选。向数组添加的新项目。 |
类型 | 描述 |
---|---|
Array | 包含被删除项目的新数组,如果有的话。 |
3,join() 该方法会将数组中所有的元素连接起来转为字符串,最后返回字符串。使用方法:array.join(分隔符)
4,reverse() 将数组中的元素顺序颠倒,返回颠倒顺序后的数组。
5,sort() 将数组中的元素排序后返回。不带参数调用时,数组以字母表顺序排序,如数组中有undefined 则排在最后。
6,concat() 创建并返回一个新数组,它的元素包括调用它的数组的元素和带中每个参数,如参数中有数组则取该数组中的每个值。不会修改调用的数组
7,slice() 返回指定的片段或者子数组。使用方法: array.slice(start, end); 不会修改调用的数组
8,splice() 在数组中插入或者删除元素的通用方法,会修改调用的数组
9,push() 和 pop() 在数组的尾部添加和删除一个或多个元素。并返回数组长度。
10, unshift() 和 shift() 在数组的头部添加和删除一个或多个元素。unshift()返回数组长度, shift()返回被删除的元素
11, toString() toLocalString()
ES5中的数组方法
1,foreach() 循环遍历数组
2,map() 将调用的数组的每个元素传递给指定的函数,并返回一个数组。用法:a = [1,2,3]; b = a.map(function(x){return x*x});返回b = [1,4,9]
3, filter() 返回调用数组的一个子集。a = [1,2,3]; b = a.filter(function(x){returnx<3});返回b = [1,2]。就是过滤的意思,利用某个函数进行过滤数组。
4,every() 和 some() 使用方法和filter一样,只不过filter返回的符合条件的子集,而这连个方法返回的是布尔值。every():当所有元素都满足条件时返回true,否则返回false;some():只要有元素满足就返回true 否则返回false。tips:根据数学惯例 在空数组调用时,every返回true,some返回false
5,reduce() 和 reduceRight() 用法类似filter, 返回函数操作的值。
二,php数组的操作方法:
在php中数组的操作方法也很多,掌握这些基本的操作方法,能够给自己平时的变成带来很大的便利,毕竟数组非常的常用。参照w3c :http://www.w3school.com.cn/php/php_ref_array.asp,对数组在php中的操作方法进行学习。