js Array对象的相关方法(数组拼接、插入、移除等2。)
1.语法
concat /concatenation 连接/
语法: Array <array>.concat(item1, item2, ..., itemN);功能: 将数组与给定参数连接起来,参数也可以是数组
如果参数是数组,那么会将参数展开,但是不会展开数组中的数组
案例:
var arr = [1,2,3];
var arr2 = arr.concat("a","b",["d", "e"], [[4, 5], 6]);
// arr2: [1,2,3,a,b,d,e,[4,5],6];
for(var i in arr2) {
alert("key = " + i + ", value = " + arr2[i]);
}
join
语法: string <array>.join(separator);
功能: 将数组用指定字符进行连接,得到一个string
案例:
var arr = [1,2,"a","b"];
var res = arr.join("--");
alert(res);
pop
语法: 元素 <array>.pop();
功能: 移除数组的最后一个元素,并返回该元素
如果数组为空,返回undefined
案例:
var arr = [1,2,3];
var ele = arr.pop();
alert(ele); // ele: 3
alert(arr); // arr: [1,2]
push
语法: number <array>.push(item1, item2, ..., itemN);
功能: 将元素追加到数组中,并返回数组的长度
如果元素是数组,不会像concat那样展开元素
案例:
var arr = [1,2,3];
var length = arr.push("a","b",["d", "e"], [[4, 5], 6]);
// arr: [1,2,3,a,b,[d,e],[[4,5],6]]
alert(typeof length);
alert(length);
reverse
语法: Array <array>.reverse();
功能: 将数组翻转,并返回数组引用. 注意,这里没有创建新数组
案例:
var arr1 = [1,2,3];
var arr2 = arr1.reverse();
// 此时arr1与arr2是同一个实例的两个引用
shift
语法: 元素 <array>.shift();
功能: 移除数组的第一个元素,并返回
案例:
var arr = ["a", "b", "c", "d", "e", "d"];
var ele = arr.shift();
alert("arr的值为:" + arr + ", 类型为:" + (typeof arr)
+ ((arr instanceof Array) ? "是" : "不是") + "Array类型");
alert("ele = " + ele + ", " + typeof ele);
slice
语法: Array <array>.slice(start, end);
功能: 返回数组的片段,第二个参数如果省略表示一直到数组结束
案例:
var arr = [1,2,3,4];
var arr1 = arr.slice(0);
var arr2 = arr.slice(0, 2);
sort
语法: Array <array>.sort(sortFunction);
功能: 按照sortFunction的规则排序数组,并返回数组引用
如果省略sortFunction,那么按照字符是升序排列
sortFunction使用规范:
function(a,b) {return -1|0|1;};
-1 a<b
0 a=b
1 a>b
案例:
var arr1 = ["c", "a", "d", "b"];
arr1.sort();
var arr2 = [3,1,4,2];
arr2.sort(function(a,b){return a-b});
splice
语法: Array <array>.splice(start, deleteCount, item1, item2, ..., itemN);
功能: 将数组中从start开始,移除deleteCount个元素,并作为数组返回
如果有item等参数,将其插入到删除数据的位置处
案例:
var arr1 = [1,2,3,4,5,6];
var arr2 = arr1.splice(1, 2);
// arr1: [1,4,5,6]; arr2: [2,3];
// var arr2 = arr1.splice(1,2, "a", "b", "c", "d");
// arr1: [1,"a","b","c","d",4,5,6]; arr2: [2,3];
// var arr2 = arr1.splice(1,2, "a");
// arr1: [1,"a",4,5,6]; arr2: [2,3];
unshift
语法: number <array>.unshift(item1, item2, ..., itemN);
功能: 将元素加到数组的开始
案例:
var arr = [1,2,3];
var length = arr.unshift(11,12,13);
// arr: [11,12,13,1,2,3];
2.案例详情
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <style type="text/css"> </style> <script type="text/javascript"> /*// concat方法 var arr = [1,2,3]; var arr2 = arr.concat("a","b",["d", "e"], [[4, 5], 6]); alert((typeof arr2) + ", " + (arr2 instanceof Array)); for(var i in arr2) { alert("key = " + i + ", value = " + arr2[i]); }*/ /*// join方法 var arr = [1,2,"a","b"]; var res = arr.join("--"); alert(typeof res + ", " + res);*/ /*// pop方法 var arr = [1,2,3]; var ele = arr.pop(); alert(ele); alert(arr);*/ /*// push方法 var arr = [1,2,3]; var length = arr.push("a","b",["d", "e"], [[4, 5], 6]); // arr: [1,2,3,a,b,[d,e],[[4,5],6]] alert(typeof length); alert(length);*/ /*// reverse方法 var arr1 = [1,2,3]; var arr2 = arr1.reverse(); delete arr1[1]; //此处删arr1[1]后,arr1数组的长度仍然为3,只是arr1[1]处为undefined; for(var i=0;i<arr2.length;i++){ console.log(arr2[i]); } var i = 0;*/ /*//shift方法 var arr = ["a", "b", "c", "d", "e", "d"]; var ele = arr.shift(); alert("arr的值为:" + arr + ", 类型为:" + (typeof arr) + ((arr instanceof Array) ? "是" : "不是") + "Array类型"); alert("ele = " + ele + ", " + typeof ele);*/ /*//slice方法 var arr = [1,2,3,4]; var arr1 = arr.slice(0); var arr2 = arr.slice(1, 3);*/ /*// sort方法 //var arr = ["c", "a", "d", "b"]; // arr.sort(); var arr = [3,1,4,2]; //arr.sort(function(a,b){return b-a}); arr.sort(new Function("a","b","return b-a")); alert(arr);*/ /* //splice方法 // var arr1 = [1,2,3,4,5,6]; // var arr2 = arr1.splice(2, 4); var arr1 = [1,2,3,4,5,6]; var arr2 = arr1.splice(1,2, "a");//, "b", "c", "d"); */ // unshift方法 var arr = [1,2,3]; var temp = arr.unshift(11,12,13); var i = 0; </script> </head> <body> </body> </html>
简单试过,没有问题。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。