數(shù)組的創(chuàng)建很簡(jiǎn)單。我們可以使用以下代碼創(chuàng)建一個(gè)包含2個(gè)元素的數(shù)組:
var arr = [1, 2];
現(xiàn)在,arr就是一個(gè)變量,它可以用來(lái)引用這個(gè)數(shù)組。數(shù)組中的元素可以是任何類型的,包括數(shù)字、字符串、布爾值等。我們還可以使用new關(guān)鍵字和Array()構(gòu)造函數(shù)來(lái)創(chuàng)建數(shù)組:
var arr = new Array(1, 2);
或者:
var arr = new Array(); arr[0] = 1; arr[1] = 2;
這兩種創(chuàng)建數(shù)組的方法是等效的。
現(xiàn)在,我們來(lái)看看JavaScript中數(shù)組的一些有用的方法。
push和pop方法
push()方法可以在數(shù)組末尾添加一個(gè)元素,并返回?cái)?shù)組的新長(zhǎng)度。下面是一個(gè)例子:
var arr = [1, 2]; arr.push(3); console.log(arr); // [1, 2, 3]
pop()方法可以從數(shù)組末尾刪除一個(gè)元素,并返回該元素的值。下面是一個(gè)例子:
var arr = [1, 2]; var x = arr.pop(); console.log(x); // 2 console.log(arr); // [1]
shift和unshift方法
shift()方法可以從數(shù)組的開(kāi)頭刪除一個(gè)元素,并返回該元素的值。下面是一個(gè)例子:
var arr = [1, 2]; var x = arr.shift(); console.log(x); // 1 console.log(arr); // [2]
unshift()方法可以在數(shù)組的開(kāi)頭添加一個(gè)或多個(gè)元素,并返回新數(shù)組的長(zhǎng)度。下面是一個(gè)例子:
var arr = [1, 2]; var x = arr.unshift(3, 4); console.log(x); // 4 console.log(arr); // [3, 4, 1, 2]
concat方法
concat()方法可以將兩個(gè)或多個(gè)數(shù)組合并成一個(gè)新數(shù)組,并返回新數(shù)組。下面是一個(gè)例子:
var arr1 = [1, 2]; var arr2 = [3, 4]; var arr3 = arr1.concat(arr2); console.log(arr3); // [1, 2, 3, 4]
slice方法
slice()方法可以從數(shù)組中抽取一個(gè)子數(shù)組,并返回新數(shù)組。下面是一個(gè)例子:
var arr1 = [1, 2, 3, 4, 5]; var arr2 = arr1.slice(1, 3); console.log(arr2); // [2, 3]
slice()方法接受兩個(gè)參數(shù),分別是要抽取的子數(shù)組的起始和結(jié)束位置。注意,結(jié)束位置不包括在子數(shù)組中。如果只指定一個(gè)參數(shù),則該參數(shù)表示起始位置,子數(shù)組包含起始位置之后的所有元素。
splice方法
splice()方法可以在任意位置添加或刪除元素,并返回被刪除的元素。下面是一個(gè)例子:
var arr = [1, 2, 3, 4, 5]; arr.splice(2, 1, 'a', 'b'); console.log(arr); // [1, 2, 'a', 'b', 4, 5]
注意,splice()方法接受三個(gè)或多個(gè)參數(shù)。第一個(gè)參數(shù)是要插入或刪除元素的起始位置,第二個(gè)參數(shù)表示要?jiǎng)h除的元素個(gè)數(shù),如果省略,則從起始位置到數(shù)組末尾的所有元素都將被刪除。第三個(gè)參數(shù)以后是要插入到數(shù)組中的元素。
forEach方法
forEach()方法可以對(duì)數(shù)組中的每個(gè)元素執(zhí)行指定的操作。下面是一個(gè)例子:
var arr = [1, 2, 3]; arr.forEach(function(element) { console.log(element); });
forEach()方法接受一個(gè)函數(shù)作為參數(shù),該函數(shù)用于對(duì)數(shù)組中的每個(gè)元素執(zhí)行操作。函數(shù)的參數(shù)是當(dāng)前元素的值,以及當(dāng)前元素在數(shù)組中的索引。
map方法
map()方法返回一個(gè)新數(shù)組,該數(shù)組的元素是原數(shù)組中的每個(gè)元素執(zhí)行指定操作的結(jié)果。下面是一個(gè)例子:
var arr1 = [1, 2, 3]; var arr2 = arr1.map(function(element) { return element * element; }); console.log(arr2); // [1, 4, 9]
map()方法接受一個(gè)函數(shù)作為參數(shù),該函數(shù)用于對(duì)數(shù)組中的每個(gè)元素執(zhí)行操作。函數(shù)的返回值作為新數(shù)組的元素。
filter方法
filter()方法返回一個(gè)新數(shù)組,該數(shù)組的元素是原數(shù)組中滿足指定條件的元素。下面是一個(gè)例子:
var arr1 = [1, 2, 3, 4, 5]; var arr2 = arr1.filter(function(element) { return element % 2 == 0; }); console.log(arr2); // [2, 4]
filter()方法接受一個(gè)函數(shù)作為參數(shù),該函數(shù)用于對(duì)數(shù)組中的每個(gè)元素進(jìn)行條件判斷。當(dāng)該函數(shù)返回true時(shí),當(dāng)前元素包含在新數(shù)組中。
至此,我們已經(jīng)介紹了JavaScript中數(shù)組的一些常見(jiàn)方法。使用這些方法,我們可以更好地操作數(shù)組,實(shí)現(xiàn)各種功能。