var arr = [1,2,3,4,5,6]; arr instanceof Array; // true Array.isArray(arr); // true
轉換方法不改變原數組,只返回轉換後的字符串javascript
var arr1 = [1,2,3,4,6]; var arr2 = ['a','b','c','d']; arr1.toString(); // '1,2,3,4,5,6' arr2.toString(); // 'a,b,c,d'
/* * join方法只接受一個參數,即用做分隔符的字符串, * 而後返回包含全部數組項的字符串 */ var arr = [1,2,3,4,5]; arr.join(''); // '12345' arr.join('-'); // '1-2-3-4-5'
1. 會改變原數組的操做方法php
/* * arr.push(arg1,arg2,arg3...) * push方法接收任意數量的參數,並逐個添加到目標數組末尾, * 返回值爲目標數組修改後的長度 */ var arr = [1,2,3]; alert(arr.push(4,5)); // 5 alert(arr); // [1,2,3,4,5]
/* * arr.pop() * pop方法爲從目標數組末尾移除一項,並返回該移除項 */ var arr = [1,2,3,4,5]; alert(arr.pop()); // 5 alert(arr); // [1,2,3,4]
/* * arr.shift() * shift方法爲從目標數組開頭移除一項,並返回該移除項 */ var arr = [1,2,3,4,5]; alert(arr.shift()); // 1 alert(arr); // [2,3,4,5]
/* * arr.unshift(arg1,arg2,arg3...) * unshift方法接收任意數量的參數,並逐個添加到目標數組開頭, * 返回值爲目標數組修改後的長度 */ var arr4 = [1,2,3]; alert(arr4.unshift(4,5)); // 5 alert(arr4); // [4,5,1,2,3]
/* * Array.splice(index,howmany,arg1,arg2...); * splice主要用途爲向數組中插入項,方法主要爲兩種: * 刪除: splice(要刪除的第一項的位置,要刪除的項數) * 插入或替換: splice(起始位置,要刪除的項數,要插入的項數) * * 返回值爲一個包含刪除項的數組 */ // 刪除 var arr1 = ['one','two','three']; var remove = arr1.splice(1,1); alert(remove); // ['two'] alert(arr1); // ['one','three'] // 插入 var arr2 = ['one','two','three']; var remove = arr2.splice(1,2,'four','five'); alert(remove); // ['two','three'] alert(arr2); // ['one','four','five'] // 替換 var arr3 = ['one','two','three']; var remove = arr3.splice(1,1,'four'); alert(remove); // ['two'] alert(arr3); // ['one','four','three']
2. 不會改變原數組的方法java
/* * Array.concat(arg1,arg2,arg3...) * concat方法爲先建立當前數組一個副本,而後將接收的參數添加到副本末尾, * 最後返回該新數組 */ var arr = [1,2,3]; var a = ['one','two']; var b = 'three'; var c = { name: 'four'}; var newArr = arr.concat(a,b,c); alert(newArr); // [1,2,3,'one','three',{name:'four'}]
/* * Array.slice(start,end) * slice方法爲截取數組,返回截取項組成的新數組 * slice 爲一個參數時,截取該參數指定的開始項到數組的末尾 * slice 爲兩個參數時,截取參數指定的起始和結束項,但不包括結束項(包左不包右) */ var arr = [1,2,3,4,5,6,7,8,9]; var sliceArr1 = arr.slice(3); // [4,5,6,7,8,9] var sliceArr2 = arr.slice(3,5); // [4,5] var sliceArr3 = arr.slice(3,-1); // [4,5,6,7,8] var sliceArr4 = arr.slice(-3,-1); // [7,8] var sliceArr5 = arr.slice(-1,-3); // []
/* * indexOf(value,start),lastIndexOf(value,start) * 兩方法都爲數組查找方法,查找目標項成功則返回數組該值的索引, * 查找失敗則返回-1 * 第一個參數爲要查找的目標值,第二個參數查找的起始位置 * indexOf 爲正序查找 * lastIndexOf 爲逆序查找 */ var arr = ['one','two','two','three','four','four','five']; var index1 = arr.indexOf('two'); // 1 var index2 = arr.indexOf('two',2); // 2 var index3 = arr.lastIndexOf('four'); // 5 var index4 = arr.lastIndexOf('four',4); // 4
排序方法會改變原數組swift
/* * Array.reverse() * 翻轉數組項的順序 * */ var arr = [1,2,3,4,5]; arr.reverse(); alert(arr); // [5,4,3,2,1]
/* * Array.sort(callback) * sort爲數組的排序方法,默認按數組每一項進行toString()後的結果進行 * 升序排序 * sort接收一個回調函數爲參數,回調函數有兩個參數,表明數組的前一項和 * 後一項,若是第一個參數應該位於第二個以前則返回一個負數,若是兩個參數相等 * 則返回 0,若是第一個參數應該位於第二個以後則返回一個正數 */ var arr1 = [2,1,4,3,5]; var arr2 = [1,50,10,500,100,1000]; arr1.sort(); arr2.sort(); alert(arr1); // [1,2,3,4,5] alert(arr2); // [1,10,100,1000,50,500] arr2.sort(function(pre,next) { if(pre < next) { return -1; }else if(pre === next) { return 0; }else { return 1; } }); alert(arr2); // [1,10,50,100,500,1000]
數組的迭代方法都接收一個回調函數,這個回調函數會在數組的每一項上運行,回調函數接收三個參數:數組項的值,數組項的索引,數組對象自己。數組
var arr = ['one','two','three']; arr.forEach(function(item,index,thisArr) { // 迭代的item 爲arr 每一項的值 // 迭代的index 爲arr 每一項的索引 // thisArr 爲 數組arr });
var arr = [1,2,3,4,5,6,7]; var filterArr = arr.filter(function(item,index,thisArr) { return item > 4; }); alert(filterArr); // [5,6,7]
var arr = [1,2,3,4,5,6,7]; var mapArr = arr.map(function(item,index,thisArr) { return item + 10; }); alert(mapArr); // [11,12,13,14,15,16,17]
var arr = [1,2,3,4,5,6,7]; var every1 = arr.every(function(item,index,thisArr) { // 對數組每一項與4進行比較 return item > 4; }); alert(every1); // false var every2 = arr.every(function(item,index,thisArr) { // 對數組每一項與8進行比較 return item < 8; }); alert(every2); // true
var arr = [1,2,3,4,5,6,7]; var some = arr.some(function(item,index,thisArr) { // 對數組每一項與4進行比較,只要有一項大於4,就返回true return item > 4; }); alert(some); // true
var arr = [1,2,3,4,5]; // 使用reduce進行數組求和操做 var sum = arr.reduce(function(pre,current,index,thisArr) { return pre + current; }); // reduceRight 則從相反方向,即從右向左迭代,結果一致 alert(sum); // 15