傳統(tǒng)的js數(shù)組方法 concat(),push(),pop(),shift(),unshift(),splice(),slice(),join(),sort(),reverse(); ES5新增數(shù)組方法: indexOf(),lastIndexOf(),map(),filter(),forEach(),some(),every(),reduce(),reduceRight(); 1,concat() 用于連接兩個數(shù)組,返回新構(gòu)建的數(shù)組 var arr = [2,3,5]; var newarr = arr.concat([5,3,8]); console.log(newarr)//[2,3,5,5,3,8]
var arr = [2,3,5]; var newarr = arr.concat(5,[3,8]); console.log(newarr)//[2,3,5,5,3,8]
var arr = [2,3,5]; var newarr = arr.concat([5,[3,8]]); console.log(newarr)//[2,3,5,5,[3,8]] 看到上面的區(qū)別了嗎? 如果concat的不是一個數(shù)組,元素則直接添加到原數(shù)組末尾,數(shù)組則把每一項分別添加到原數(shù)組末尾; 如果concat的是個二維數(shù)組,則把數(shù)組中的每一項添加到原數(shù)組末尾,二維數(shù)組中數(shù)組整體添加到原數(shù)組末尾; 應(yīng)用,實現(xiàn)降維數(shù)組 例: var arr = [[1,2],[2,3]]; var newarr = Array.prototype.concat.apply([], arr); console.log(newarr)//[1,2,2,3] 2,push()和pop(); push()是把元素添加到數(shù)組末尾,并返回新數(shù)組的長度;pop()是把數(shù)組中最后一項刪除,并返回刪除的項; 3,shift()和unshift(); unshift()是把元素添加到數(shù)組開頭位置,并返回新數(shù)組的長度;shift()是把數(shù)組中第一項刪除,并返回刪除的項; 4,splice(); splice()的作用很多,可以刪除,添加,替換數(shù)組的某些項; splice()接收很多參數(shù),第一個參數(shù)代表起始位置,第二個參數(shù)代表刪除的個數(shù),第三個參數(shù)開始代表插入的數(shù)據(jù);返回被刪除的項; var arr = [1,3,3,5]; var newarr = arr.splice(2,0,6,7,8); console.log(arr) //[1,3,6,7,8,3,5] console.log(newarr)//[] 5,slice(); slice()可以接收2個參數(shù),分別代表起始位置和結(jié)束位置,返回起始位置到結(jié)束位置直接的數(shù)據(jù),但不包括結(jié)束位置的數(shù)據(jù); 如果只有一個參數(shù),代表起始位置,返回從起始位置到末尾的數(shù)據(jù); 如果參數(shù)是負數(shù),代表從末尾開始計算,-1代表最后一個位置; 6,join(); 數(shù)組轉(zhuǎn)換為字符串的方法; 7,sort(); 數(shù)組排序,默認按升序排列;返回排序后的數(shù)組; sort()默認會將數(shù)組中的每一項轉(zhuǎn)換為字符串再排序 所以會出現(xiàn)下列情況 var arr = [13,2,1,15,3] var newarr = arr.sort(); console.log(newarr);//[1,13,15,2,3] 所以需要比較函數(shù),sort可以傳遞一個函數(shù)參數(shù),這個函數(shù)就是比較函數(shù); 比較函數(shù)接收兩個參數(shù),如果第一個參數(shù)應(yīng)該位于第二個之前則返回一個負數(shù),如果兩個參數(shù)相等則返回 0,如果第一個參數(shù)應(yīng)該位于第二個之后則返回一個正數(shù)。 arr.sort(function(a, b){ if(a<b){ return -1; }else if(a>b){ return 1; }else { return 0; } }) 8,reverse(); 反轉(zhuǎn)數(shù)組項的順序 9,forEach(); 循環(huán)數(shù)組的每一項, 10,map(); 映射數(shù)組的每一項,返回處理后的數(shù)組 11,filter(); 返回滿足過濾條件的數(shù)組 12,some(); 判斷數(shù)組中的項是否滿足條件,只要有一項滿足就返回ture; 13,every(); 判斷數(shù)組中的項是否滿足條件,只有全部項都滿足才返回ture; 14,indexOf()和lastIndexOf(); 接收兩個參數(shù),要查找的項和從哪個位置開始查找(可有可無);返回元素在數(shù)組中的位置,沒有找到返回-1; 15,reduce()和reduceRight(); 迭代數(shù)組所有項 來源:http://www./content-4-49651.html |
|