Array 對象方法
方法 | 描述 |
---|---|
concat() | 連接兩個或更多的數組,並返回結果。 |
copyWithin() | 從數組的指定位置拷貝元素到數組的另一個指定位置中。 |
entries() | 返回數組的可迭代對象。 |
every() | 檢測數值元素的每個元素是否都符合條件。 |
fill() | 使用一個固定值來填充數組。 |
filter() | 檢測數值元素,並返回符合條件所有元素的數組。 |
find() | 返回符合傳入測試(函數)條件的數組元素。 |
findIndex() | 返回符合傳入測試(函數)條件的數組元素索引。 |
forEach() | 數組每個元素都執行一次回調函數。 |
from() | 通過給定的對象中創建一個數組。 |
includes() | 判斷一個數組是否包含一個指定的值。 |
indexOf() | 搜索數組中的元素,並返回它所在的位置。 |
isArray() | 判斷對象是否為數組。 |
join() | 把數組的所有元素放入一個字符串。 |
keys() | 返回數組的可迭代對象,包含原始數組的鍵(key)。 |
lastIndexOf() | 搜索數組中的元素,並返回它最后出現的位置。 |
map() | 通過指定函數處理數組的每個元素,並返回處理后的數組。 |
pop() | 刪除數組的最后一個元素並返回刪除的元素。 |
push() | 向數組的末尾添加一個或更多元素,並返回新的長度。 |
reduce() | 將數組元素計算為一個值(從左到右)。 |
reduceRight() | 將數組元素計算為一個值(從右到左)。 |
reverse() | 反轉數組的元素順序。 |
shift() | 刪除並返回數組的第一個元素。 |
slice() | 選取數組的的一部分,並返回一個新數組。 |
some() | 檢測數組元素中是否有元素符合指定條件。 |
sort() | 對數組的元素進行排序。 |
splice() | 從數組中添加或刪除元素。 |
toString() | 把數組轉換為字符串,並返回結果。 |
unshift() | 向數組的開頭添加一個或更多元素,並返回新的長度。 |
valueOf() | 返回數組對象的原始值。 |
一、concat() 方法
concat() 方法用於連接兩個或是多個數組,並將新的數組返回。
方法不會改變原有的數組,僅僅會返回被連接數組的一個副本。
語法:
arrayObject.concat(arrayX,arrayX,......,arrayX)
參數:
arrayX,該參數可以是具體的值,也可以是數組對象,
返回值:
返回一個新的數組。該數組是通過把所有 arrayX 參數添加到 arrayObject 中生成的。如果想要進行 concat() 操作的參數是數組,那么添加的是數組中的元素,而不是數組。
實例:
使用concat() 方法連接數組中的值。
var arr=["大雪","小雪","霜降","立冬","寒露"] console.log(arr.concat("清明","秋分")); console.log(arr);
使用concat() 方法連接兩個數組。
var arr=["大雪","小雪","霜降","立冬","寒露"] var arr2 =["一月","二月","三月"] console.log(arr.concat(arr2)); console.log(arr);
二、join() 方法
join() 方法用於將數組中的所有元素都放到一個字符串中。該方法可以將數組轉換成一個字符串。
注意:
1、元素是指定分隔符進行分割的
2、該方法不會對原數組產生影響,而是將轉換后的字符串作為結果返回。
語法:
arrayObject.join(separator)
參數:
separator ,可選,指定要使用的分隔符,如果省略這個參數,則將默認使用逗號分隔。
返回值:
返回一個字符串。該字符串是通過吧 arrayObject 的每個元素轉換為字符串,然后將這些字符串連接起來,並在兩個元素中間插入 separator 字符串而生成的。
實例:
將數組中的元素放到一個字符串,將字符串使用(/)符號分隔
var arr=["大雪","小雪","霜降","立冬","寒露"] console.log(arr.join()); console.log(arr.join('/'));
三、reverse() 方法
該方法用於顛倒數組中元素的順序,用以反轉數組(前面的去后面,后面的去前面);
語法:
arrayObject.reverse()
注意:
該方法會改變原來的數組,但是不會創建新的數組。
實例:
創建一個數組,改變里面的元素順序
var arr=["大雪","小雪","霜降","立冬","寒露"] console.log(arr.reverse()); console.log(arr);
四、sort() 方法
sort() 方法用於對數組中的元素進行排序
語法:
arrayObject.sort(sortby)
參數:
sortby,可選,規定排序順序,必須是函數
返回值:
可以對數組中的元素進行排序,也會影響原數組,默認會按照Unicode 編碼進行排序。
注釋:
如果調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序,更准確的說是按照 Unicode字符編碼的順序進行排序。
即使對於純數字的數組,使用 sort() 排序時,也會按照 Unicode 編碼排序,所以對數字進行排序時有可能得到錯誤的結果。
如果想實現這一點,首先應該把數組的元素都轉換成字符串(如果有必要),以便進行比較。
如果想按照其他標准進行排序,就需要在 sort() 里面添加一個回調函數,回調函數中需要兩個形參(a 和 b),瀏覽器將會分別使用數組中的元素作為實參去調用回調函數。其返回值如下:
使用哪個元素調用不確定,但是肯定的是在數組中 a 一定是在 b 前面。瀏覽器會根據回調函數的返回值來決定元素的順序。
如果 a 小於 b,在排序后的數組中 a 應該出現在 b之前,則返回一個小於 0 的值。
如果 a 等於 b,則返回 0;
如果 a 大於 b,則返回一個大於 0的值。
如果返回一個大於0的值,則元素就會交換位置;如果返回一個小於0的值,則元素位置不變;
實例:(a 和 b會使用哪個元素調用不確定,但是肯定的是在數組中 a一定在 b前面)
var aa=[3,4,3,5]; aa.sort(function(a,b){ console.log('a= '+a); console.log('b= '+b); }); console.log(aa);
實例:
創建一個數組,並按照字母順序進行排序
var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" console.log(arr); console.log(arr.sort());
按照數字的順序返回數組:
var arr=[1,2,31,75,32,0,1]; console.log(arr.sort());
注意:上面的代碼沒有按照數值的大小對數字進行排序,要實現這一點,就必須使用一個排序函數 sortNember
<script type="text/javascript"> function sortNumber(a,b){ return a - b } var arr = new Array(6) arr[0] = "10" arr[1] = "5" arr[2] = "40" arr[3] = "25" arr[4] = "1000" arr[5] = "1" console.log(arr) console.log(arr.sort(sortNumber)) </script>
五、push() 方法
push() 方法可以向數組末尾添加一個或是多個元素,並返回數組新的長度
可以將要添加的元素作為方法的參數傳遞,這樣這些元素會自動添加到數組的末尾。
語法:
arrayObject.push(newelement1,newelement2,....,newelementX)
參數:
newelement1 必需。要添加到數組的第一個元素。
newelement2 可選。要添加到數組的第二個元素。
newelementX 可選。可添加多個元素。
返回值:
把指定的值添加到數組后的新長度。
注意:
1、push()方法可以把它的參數添加到 arrayObject 的尾部。直接修改 arrayObject,而不是創建一個新的數組。push()方法和 pop()方法使用數組中提供的先進后出棧的功能
2、該方法會改變原有數組的長度;
3、如果想在數組的開頭添加一個或是多個元素,可以使用 unshift() 方法。
實例:
通過 push() 方法在數組尾部添加元素,並且返回數組的長度;
var arr = ["大雪","小雪","霜降"] var result = arr.push('冬至'); console.log(arr); console.log("result = " +result);
六、pop() 方法
該方法可以刪除並返回數組中的最后一個元素。
語法:
arrayObject.pop()
返回值:
數組對象的最后一個元素
注意:
pop() 方法將刪除 arrayObject 的最后一個元素,把數組長度減 1,並且返回它刪除的元素的值。如果數組已經是個空數組,則 pop() 不該變數組,並且返回 undefined值。
實例:
刪除數組中的最后一個元素。
var arr = ["大雪", "小雪", "霜降", "冬至"] var result = arr.pop(); console.log(arr); console.log("result = " +result);
當數組是空數組沒有元素可以刪除的時候,就會返回 undefined
七、unshift() 方法
該方法可以向數組開頭添加一個或者是多個元素,並且返回新的數組長度。
語法:
arrayObject.unshift(newelement1,newelement2,....,newelementX)
參數:
newelement1 必需。要添加到數組的第一個元素。
newelement2 可選。要添加到數組的第二個元素。
newelementX 可選。可添加多個元素。
返回值:
數組對象的新長度;
注意:
1、unshift() 方法將它的參數插入到 arrayObject 的頭部,並將已經存在的元素順次地一到較高的下標處,以便留出空間。
在前面插入元素之后,其他元素的索引會依次調整;
2、unshift() 方法不創建新的元素,而是直接修改原有的數組。該方法會改變數組的原有長度;
3、該方法在IE瀏覽器中無法正常使用。
實例:
var arr = ["大雪","小雪","霜降"] var result = arr.unshift('冬至'); console.log(arr); console.log("result = " +result);
八、shift() 方法
shift() 方法用於把數組中的第一個元素從中刪除,並且返回第一個元素的值。
語法:
arrayObject.shift()
返回值:
數組原來第一個元素的值;
注意:
1、如果數組是空的,那么 shift() 方法將不進行任何操作,返回 undefined 值。
2、該方法不創建新的數組,而是直接修改原有的 arrayObject。會改變原有數組的長度。
var arr = ["大雪","小雪","霜降","冬至"] var result = arr.shift(); console.log(arr); console.log("result = " +result);