Array 對象用於在單個的變量中存儲多個值. 創建數組的方法如下:
let arr = new Array(); let arr = new Array(size); let arr = new Array(element0, element1, ..., elementn); let arr = []; let arr = ['apple','banana']
通過索引訪問數組元素:
let item = arr[item]
遍歷一個數組:
arrName.forEach(function (item, index, array) { console.log(item, index); });
Array常用對象方法:
-
concat() :
連接兩個或更多的數組,並返回結果。這個方法會先創建當前數組一個副本,然後將接收到的參數添加到這個副本的末尾,最後返回新構建的數組
var arr = [1,3,5]; var arr2 = arr.concat[2,[4,6]]; console.log(arr2); // 1,3,5,2,4,6 console.log(arr); // 1,3,5 原數組不變
-
join() :
把數組的所有元素放入一個字符串,元素通過指定的分隔符進行分隔。
let arr = ['Wind', 'Rain', 'Fire']; arr.join(); // 默認爲 "," 'Wind,Rain,Fire' arr.join(""); // 分隔符爲空字符串 " " "WindRainFire" arr.join("-"); // 分隔符 "-" 'Wind-Rain-Fire'
-
pop() :
刪除並返回數組的最後一個元素。pop() 方法將刪除 arrayObject 的最後一個元素,把數組長度減 1,並且返回它刪除的元素的值。如果數組已經爲空,則 pop() 不改變數組,並返回 undefined 值。
let a = [1,3,5]; a.pop(); // 5
-
push() :
向數組的末尾添加一個或多個元素,並返回新的長度。
let arr = new Array("George","John","Thomas"); document.write(arr + "
"); // George,John,Thomas document.write(arr.push("James") + "
"); //4 document.write(arr); // George,John,Thomas,James -
shift() :
刪除並返回數組的第一個元素
let arr = new Array("George","John","Thomas"); document.write(arr.shift() ); // George
-
unshift() :
向數組的開頭添加一個或更多元素,並返回新的長度。
let arr = new Array("George","John","Thomas"); document.write(arr + "
"); // George,John,Thomas document.write(arr.unshift("William") + "
"); // 4 document.write(arr); // William,George,John,Thomas -
reverse() :
顛倒數組中元素的順序。
let arr = ['one', 'two', 'three']; arr.reverse(); console.log(arr); // ['three', 'two', 'one']
-
slice() :
抽取當前數組中的一段元素組合成一個新數組,該方法不會修改數組,只會返回一個子數組。語法如下:
arrayObject.slice(start,end)
-
splice():
在任意的位置給數組添加或刪除任意個元素,該方法會改變原數組。語法如下:
arrayObject.splice(index,howmany,item1,.....,itemX)
其中:index是必須參數,規定添加/刪除項目位置;howmany也是必須參數,爲刪除的數目量;item…爲可選參數,是向數組添加的新項目。 -
sort():
對數組的元素進行排序。語法爲:
arrayObject.sort(sortby)
其中sortby爲一個可選的排序函數。、function sortNumber(a,b) { return a - b } let arr = [1,5,8,2,6,4]; arr.sort(sortNumber); // 1,2,4,5,6,8
-
indexOf() :
返回在數組中可以找到一個給定元素的第一個索引,如果不存在,則返回-1
let arr = [1,3,6,8,9]; arr.indexOf(2); // -1 arr.indexOf(6); // 2
-
lastIndexOf() :
返回指定元素在數組中的最後一個的索引,如果不存在則返回 -1
let arr = [1,3,6,8,9]; arr.lastIndexOf(2); // -1 arr.lastIndexOf(6); // 2
-
map() :
創建一個新數組,其結果是該數組中的每個元素都調用一個提供的函數後返回的結果。map 不修改調用它的原數組本身
let arr = [1,4,9]; let num1 = arr.map(x => x*2); let num2 = arr.map(function(x){ return Math.sqrt(x); }); let num3 = arr.map(Math.sqrt); console.log(num1); // [2,8,18] console.log(num2); // [1,2,3] console.log(num3); // [1,2,3]
-
reduce() :
對累加器和數組中的每個元素 (從左到右)應用一個函數,將其減少爲單個值
let sum = [0, 1, 2, 3].reduce(function(acc, val) { return acc + val; }, 0); console.log(sum); // 6
對應的還有 reduceRight() 方法 -
filter() :
“過濾”功能,數組中的每一項運行給定函數,返回滿足過濾條件組成的數組。
function isBigEnough(value) { return value >= 10; } var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); // [12, 130, 44]
-
every() :
如果數組中的每個元素都滿足測試函數,則返回 true,否則返回 false
function isBigEnough(element, index, array) { return (element >= 10); } var passed = [12, 5, 8, 130, 44].every(isBigEnough); // false
-
some() :
如果數組中至少有一個元素滿足測試函數,則返回 true,否則返回 false。
function isBigEnough(element, index, array) { return (element >= 10); } var passed = [12, 5, 8, 1, 4].some(isBigEnough); // true
在這裏對數組的常用方法做個總結,方便以後查看。