国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

超詳細的javascript數組方法匯總

2019-11-20 11:12:52
字體:
來源:轉載
供稿:網友

一、數組的常用方法
1:join();

將數組轉為字符串顯示。不輸入參數,默認以逗號連接;輸入參數,則以參數連接。

var arr=[1,2,3];console.log(arr.join());  // 1,2,3;console.log(arr.join("_")); // 1_2_3;console.log(arr);      // [1,2,3];

原數組不變。

2:reverse();

將數組逆序排列,原數組被修改。

var arr=[1,2,3];var arr2=arr.reverse();console.log(arr2); // [3,2,1];console.log(arr);  // [3,2,1];

3:sort();

默認按升序排列數組項,調用每個數組項的toString()方法,然后比較得到的字符串,從字符串首位開始比較。

var arr=[2,12,14,21,5];console.log(arr.sort());  //[12, 14, 2, 21, 5];

也可以傳入一個比較函數作為參數。如果第一個參數應該在前,則比較函數返回一個小于0的值;反之第一個參數在后,這比較函數返回一個大于0的值;如果順序無關緊要,則比較函數返回0;

var arr=[2,12,14,21,5];console.log(arr.sort(function(a,b){return a-b}));   // [2,5,12,14,21]; var arr1=[2,12,14,21,5];console.log(arr1.sort(function(a,b){return b-a}));  // [21,14,12,5,2];

4:concat();

數組合并,原數組不變。

var arr=[1,2,3];console.log(arr.concat(4,5));      // [1, 2, 3, 4, 5];console.log(arr.concat([4,5],6));    // [1, 2, 3, 4, 5, 6];console.log(arr.concat([[4,5],6]));   // [1, 2, 3, [4, 5],6];console.log(arr);            // [1, 2, 3];

5:slice();

返回部分數組,包含第一個參數所對應的數組項,但不包含第二個參數對應的數組項。如果傳入的參數小于0,則從后往前數,最后一項為-1。如果只傳入一個參數,則返回的數組包含起始位置到數組結尾的所有元素。原數組不變。

var arr=[1,2,3,4,5];console.log(arr.slice(1,3));   // [2,3];console.log(arr.slice(1));    // [2,3,4,5];console.log(arr.slice(1,-1));  // [2,3,4];console.log(arr);        // [1,2,3,4,5];

6:splice();

數組拼接:

1).刪除-用于刪除元素,兩個參數,第一個參數(要刪除第一項的位置),第二個參數(要刪除的項數);

2).插入-向數組指定位置插入任意項元素。三個參數,第一個參數(其實位置),第二個參數(0),第三個參數(插入的項);

3).替換-向數組指定位置插入任意項元素,同時刪除任意數量的項,三個參數。第一個參數(起始位置),第二個參數(刪除的項數),第三個參數(插入任意數量的項);

splice()返回一個由刪除元素組成的數組,或者如果沒有刪除元素就返回一個空數組。原數組被修改。

var arr=[1,2,3,4,5,6];console.log(arr.splice(2));        // [3,4,5,6];console.log(arr);             // [1,2];console.log(arr.splice(2,0,3,4,5,6));  // [];console.log(arr);               // [1,2,3,4,5,6];console.log(arr.splice(2,2));       // [3,4];console.log(arr);              // [1,2,5,6];

7:push()和pop()方法,unshift()和shift()方法;

push()和pop() 棧方法,后進先出。原數組都發生改變。

push()方法在數組的尾部添加一個或多個元素,并返回數組新的長度。

pop()方法刪除數組的最后一個元素,減小數組的長度并返回刪除的值。

unshift()和shift()隊列方法,先進先出。原數組都發生改變。

unshift()方法在數組的頭部添加一個或多個元素,并改變已存在元素的索引,然后返回數組新的長度。

shift()方法刪除數組的第一個元素并將其返回,并改變已存在元素的索引。

var arr=[1,2,3];console.log(arr.push(4));  //4;console.log(arr);       //[1,2,3,4];console.log(arr.pop());   //4;console.log(arr);       //[1,2,3];console.log(arr.unshift(0)); //4;console.log(arr);       //[0,1,2,3];console.log(arr.shift());  //0;console.log(arr);       //[1,2,3];

8:forEach();

forEach()里第一個參數為該集合里的元素,第二個參數為集合里的索引,第三個參數為集合本身。

9:map();

map()對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組,原數組未被修改。

10:every()

對數組的每一項運行給定函數,如果該函數對每一項都返回true,則返回true。

11:some()

對數組的每一項運行給定函數,如果該函數對任一項返回true,則返回true。

12:filter()

對數組中的每一項運行給定函數,返回該函數會返回true的項組成的數組。

13:reduce()和reduceRight();
兩個方法都會迭代數組的所有項,然后構建一個最終返回的值。其中reduce()方法從數組的第一項開始,逐個遍歷到最后。而reduceRight()則從數組的最后一項開始,向前遍歷到第一項。數組未被修改。

 

二、擴展方法
1:數組去重

function unique(array){  return array.filter(function(item,index){    return array.indexOf(item)==index;  })};var arr=[1,2,3,3,4,2,1,5];console.log(unique(arr));    //[1,2,3,4,5];function unique(arr){  var arr2=[arr[0]],    len=arr.length;  if(!len){    return;  }  for(var i=0;i<len;i++){    arr2.join(" ").indexOf(arr[i])<0?arr2.push(arr[i]):"";  }  return arr2;}var arr=[1,2,3,3,4,2,1,5];console.log(uniq(arr));   //[1,2,3,4,5]    

2:去掉數組中的空元素

function deleteNullInArray(array){  return array.filter(function(item){    return item!=null;  }) }var arr=[1,2,null,,,5];console.log(deleteNullInArray(arr));  //[1,2,5];

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太湖县| 南皮县| 建阳市| 洪洞县| 正镶白旗| 香格里拉县| 尉犁县| 金寨县| 稻城县| 陆川县| 邓州市| 德江县| 宁河县| 林西县| 科尔| 镇原县| 察雅县| 客服| 辉县市| 郑州市| 石家庄市| 枞阳县| 蓬溪县| 肇东市| 遂平县| 宽甸| 张家口市| 城固县| 澄江县| 甘肃省| 蒙自县| 洱源县| 随州市| 永兴县| 襄樊市| 娱乐| 梅河口市| 阿克苏市| 乐清市| 义马市| 新平|