
js數組操作大全(帶實例),含隱性定義、三種添加和刪除元素的方法、排序、數組轉字符、數組合并和多維數組
Javascript 數組的操作包括定義、添加、刪除、讀取、修改、復制、排序、截取與合并、把數組所有元素轉為字符串等。定義數組有兩種方法,一種為新建一個數組,另一種為隱性定義,即根據所賦的值確定。添加和刪除元素有三種方法,分別為 push()、unshift()、splice()、pop()、shift()、splice()。
定義 Javascript 數組后,可以給它任意添加屬性,也可以對數組元素排序;排序分為升序和降序,分別用 sort() 和 reverse() 方法。兩個數組可以合并為一個,一個數組和一串字符也可以合并為一個數組,用 concat() 方法實現;另外,可以用 slice() 方法提取指定數目的數組元素。數組可以轉為字符串,分別用 join()、toString() 和 toLocaleString() 方法實現。
Js 多維數組有兩種定義方法,一種為 new Array(new Array(), new Array(), ...),另一種為 [[,, ...],[,, ...], ...]。
1、數組的定義:
//定義一個數組
var arrObj = new Array();
//定一個指定長度的數組
var arrObj = new Array([size]);
//定義一個數組并賦值
var arrObj = new Array([element0[, element1[, ...[, elementN]]]]);
舉例:
var arrObj1 = new Array();//定一個空數組
var arrObj2 = new Array(10);//定一個 10 個元素的數組
var arrObj3 = new Array(1,2,3,4,5);//定一個數組并初始化 5 個元素
或 var arrObj3 = [1,2,3,4,5] //隱性聲明
2、添加數組元素:
//把一個或多個新元素添加到數組末尾,并返回數組新長度
arryObj.push([item1 [item2 [. . . [itemN ]]]]);
//把一個或多個新元素添加到數組前面,數組中的元素自動后移,返回數組新長度
arrObj.unshift([item1 [item2 [. . . [itemN ]]]]);
//從 start 位置開始刪除由 deleteCount 指定個數的元素,然后從該位置起插入 item1,item2,...,itemN,并返回刪除的元素。
arrObj.splice(start,deleteCount,[item1[, item2[, . . . [,itemN]]]]);
舉例:
var a = new Array(1,2,3,4,5);
a.push(6);//結果:a:(1,2,3,4,5,6)
a.unshift(6); //結果:a:(6,1,2,3,4,5)
a.splice(2,0,6); //結果:a:(1,2,6,3,4,5)
var b = a.splice(2,2,6); //結果:a:(1,2,6,5);b:(3,4)
a[1000000] = 10; //把 10 賦給索引為 1000000 的元素,說明 Javascript 可以把值賦給遠遠超出數組長度的索引。
3、刪除數組元素:
arrObj.pop(); //移除最后一個元素并返回該元素值,如果數組為空則返回 undefined
arrObj.shift(); //移除最前一個元素并返回該元素值,剩余元素自動前移
arrObj.splice(start,deleteCount); //刪除從指定位置(start)開始的指定數量(deleteCount)的元素,最后以數組形式返回所有被移除的元素
舉例:
var a = new Array(1,2,3,4,5);
var b = a.pop();//結果:a:(1,2,3,4);b:5
var c = a.shift(); //結果:a:(2,3,4,5);c:1
var d = a.splice(2,1); //結果:a:(1,2,4,5);d:3
4、讀取和修改數組元素:
var a = new Array(1,2,3,4,5);
var b = a[1];//讀取數組第一個元素,結果:b:2
var c = a[1] = 6; //修改數組第一個元素,結果:a:(1,6,3,4,5);c:6
5、給數組添加屬性:
var arrPerson = new Array();
arrPerson.name = "李亦月";//添加一個“姓名”屬性
arrPerson.age = 22;//添加一個“年齡”屬性
6、數組元素的排序:
arrObj.sort(); //對數組元素排序,返回數組地址
arrObj.reverse(); //把元素按倒序排列,返回數組地址
舉例:
var b = [6,7,8,5,3,2,1];
b.sort(); //排序數字數組,結果:1,2,3,5,6,7,8
var arr = ["d", "f", "c", "a", "g"];
b.sort(); //排序對象(字符)數組, 結果:a,c,d,f,g
var a = new Array(1,2,3,4,5);
a.reverse();////逆向排序數字數組,結果:5,4,3,2,1
var arr = new Array("d", "f", "c", "a", "g");
arr.reverse();//逆向排序對象(字符)數組,結果:arr: g,a,c,f,d,結果不正確
7、數組的截取與合并:
arrObj.slice(start, [end]); //以數組的形式返回從 start 到 end 的所有元素,但不包括 end 對應的元素;如果省略 end,則返回 start 之后的所有元素
arrObj.concat([item1[, item2[, . . . [,itemN]]]]); //把多個數組(或字符串,數組和字符串的混合)合并為一個數組,返回合并后的新數組
舉例:
var a = new Array(1,2,3,4,5,6);
var b = a.slice(2,4);//結果:b:(3,4);
var b = [8, 9, 10];
var c = a.concat(b);//結果:c:(1,2,3,4,5,6,8,9,10);
var d = a.concat("abc");//d:(1,2,3,4,5,6,abc);
8、數組轉字符:
arrObj.join(separator); //返回把數組元素轉為字符后的字符串,中間用 separator 隔開。
arrObj.toString();//把數組轉為一個字符串,并返回該字符串
arrObj.toLocaleString(); //把數組轉換為本地字符串。與 toString() 相似, 在 FireFox 完全相同;在 ie 下,如果是數字,則會在后面補上兩位小數;如果是字符串,則會在“,”后加上一個空格。
舉例:
var a = new Array(1,2,3,4,5,6);
var b = a.join("");//結果:b:123456;
var c = a.join("-");//結果:c:1-2-3-4-5-6;
var d = a.toString();//結果:d:1,2,3,4,5,6;
var e = a.toLocaleString();//結果:e:1.00,2.00,3.00,4.00,5.00,6.00;Chrome 或火狐 1,2,3,4,5;
var arr = new Array(); arr[0] = "abc"; arr[1] = "def"; arr[2] = "gh";
var r = arr.toLocaleString();//結果:r:abc, def, gh;
9、多維數組:
(1)方法一
var matrix = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11,12]
];
matrix1[2][2] //返回 11
(2)方法二
var matrix = new Array(
new Array(1, 2, 3, 4),
new Array(5, 6, 7, 8),
new Array("a", "b", "c", "d")
);
matrix1[2][2] //返回 c