JavaScript之數組

來源:互聯網
上載者:User

標籤:fun   length   ever   建構函式   上下文   類型   cto   data-   遍曆數組   

  數組是用來在單獨的變數名中儲存資料的,你可以通過方法來運算元組,如:增加資料、刪除資料等。

建立/訪問數組

  通過指定數組名以及索引號碼(數組的索引從0開始),你可以訪問某個特定的元素,如arr[2]、arr[3]。

 1  //  建立數組的方法有兩種:1、通過new關鍵字建立    2、通過字面量建立 2  var arr = new Array();    //    建立一個空數組 3  arr[0] = "Hello";    //  向arr數組中添加元素 4  arr[1] = "world";   //  向arr數組中添加元素 5  6  var arr1 = new Array(3);    //   建立一個數組長度的3的數組 7  arr[0] = "My";    //  向arr1數組中添加元素 8  arr[1] = "name";   //  向arr1數組中添加元素 9  arr[3] = "Lily";   //  向arr1數組中添加元素10  11  var arr2 = new Array(1,2,3,4,5);    //  建立數組[1,2,3,4,5]12  13  var arr3 = [];    //    建立一個空數組14  var arr4 = [1,2,3];     //  建立數組[1,2,3]15 16  console.log(arr[1]);   //  返回world17  console.log(arr4[2]);   //  返回3

數組的屬性

  1、length - 返回數組的長度,即數組元素的個數

  2、prototype - 返回物件類型原型的引用

  3、constructor - 返回建立數組的建構函式

1 //  數組的length屬性2 var arr = [1,2,3,4,5];3 console.log(arr.length);   //  返回5

數組的方法

  push() - 在數組末尾添加一個或多個元素,並返回新數組的長度(要改變原來的數組)

  pop() - 刪除數組末尾的一個元素,並返回該元素(要改變原來的數組)

  unshift() - 在數組開頭添加一個或多個元素,並返回新數組長度(要改變原來的數組)

  shift() -  刪除數組開頭的一個元素,並返回該元素(要改變原來的數組)

  slice() - 截取數組的一個片段,並以數組的形式返回該片段(不改變原數組)

  splice() - 在指定位置增加或刪除數組元素,只增加元素返回空數組,刪除元素則以數組形式返回被刪除的元素(要改變原數組)

  concat() - 將一個或多個數組串連,並返回串連後新的數組(不改變原數組)

  reverse() - 反轉數組中的元素(要改變原來的數組)

  sort() - 對數組元素排序,會改變原來的數組(預設是升序)

  join(separator) - 將數組元素轉為以separator隔開的字串(預設用逗號分隔)

  indexOf() - 返回元素的索引,類似字串的indexOf()方法

 1 //  增加元素  push、unshift、splice  (改變原數組) 2 var arr = [1,2,3]; 3 arr.push(4,5);   //  返回5,arr = [1,2,3,4,5] 4 arr.unshift(-1,0);  //  返回7,arr = [-1,0,1,2,3,4,5] 5 //  splice(index,count,arrData)  index--增加元素的位置(索引);count--從index位置開始刪除元素的個數;arrData--從index位置開始增加的元素 6 arr.splice(1,0,6);   // 返回[],arr = [-1,6,0,1,2,3,4,5] 7  8 //  刪除元素  pop、shift、splice 9 var  arr = [1,2,3,4,5,6,7];10 arr.pop();  //  返回7,arr = [1,2,3,4,5,6]11 arr.shift();  //  返回1,arr = [2,3,4,5,6]12 //  splice(index,count)  index--刪除元素的位置(索引);count--從index位置開始刪除元素的個數13 arr.splice(2,2);  //  返回[4,5],arr = [2,3,6]14 15 //  截取數組 slice (不改變原數組,以數組形式返回截取的部分)16 // slice(start,[end]) - 截取數組從start開始(含),到end結束(不含);若end省略,則從start開始截取,到數組末尾17 var arr = [1,2,3,4,5];18 arr.slice(1,3);  //  返回[2,3],arr = [1,2,3,4,5]19 arr.slice(3);  //  返回[4,5],arr = [1,2,3,4,5]20 21 //  串連數組 contact(不改變原數組)22 var arr = [1,2];23 var arr1 = [3,4,5];24 arr.concat(arr1);  //  返回[1,2,3,4,5],arr = [1,2]25 arr.concat("a","b");  //  返回[1,2,"a","b"],arr = [1,2]26 27 //  反轉數組  reverse (改變原數組)28 var arr = [1,2,3];29 arr.reverse();  //  返回[3,2,1],arr = [3,2,1]30 31 //  數組排序  sort  (改變原數組)32 // sort不帶參數,按升序排列;sort帶參數,參數是一個函數33 var arr = [3,2,6,5,9,1];34 arr.sort();    //  返回[1,2,3,5,6,9],arr = [1,2,3,5,6,9]35 var arr = [9,5,6,8,2];36 arr.sort(function(a,b){37      return b-a;    //  按降序排列38     //  return a-b;    //  按升序排列39 });      //  返回[9,8,6,5,2],arr = [9,8,6,5,2]40 41 //  數組轉字串 join 預設以逗號分隔(不改變原數組)42 var arr = [1,2,3,4];43 arr.join();       //  返回"1,2,3,4"44 arr.join(",");    //  返回"1,2,3,4"45 arr.join("-");    //  返回"1-2-3-4"

遍曆數組

  map() - 返回一個新數組,數組中的元素為原始數組元素調用函數處理後的值(不改變原數組)

  filter()  - 返回一個新的數組,新數組中的元素是通過檢查指定數組中合格所有元素(不改變原數組) 

  some() - 返回true或false,對數組中的每個元素進行檢查,直到返回true為止,若檢查完整個數組都為false,則返回false;它只對數組中的非空元素執行指定的函數,沒有賦值或者已經刪除的元素將被忽略

  every() - 返回true或false,對數組中的每個元素進行檢查,直到返回false為止,若檢查完整個數組都為true,則返回true;它只對數組中的非空元素執行指定的函數,沒有賦值或者已經刪除的元素將被忽略

  forEach() - 遍曆數組中的每一項

  for迴圈遍曆數組(不介紹)

 1 // map()  =>  array.map(function(value,index,[array]){},[thisValue]) 2 // value -- 當前數組元素,index -- 當前數組元素的索引,array -- 調用map方法的數組,thiiValue -- 執行回呼函數時定義的this對象(內容物件) 3 // 返回每個項的平方 4 var arr = [1,2,3]; 5 arr.map(function(val,index){ 6      return val * val; 7 });    //  返回[1,4,9],arr = [1,2,3] 8  9 // filter()  =>  array.filter(function(value,index,[array]){},[thisValue])10 // value -- 當前數組元素,index -- 當前數組元素的索引,array -- 調用filter方法的數組,thiiValue -- 執行回呼函數時定義的this對象(內容物件)11 // 過濾掉奇數12 var arr = [1,2,3,4,5,6];13 arr.filter(function(val,index){14   return val % 2 === 0;15 });    //  返回[2,4,6],arr = [1,2,3,4,5,6]16 17 //  some()  =>   array.some(function(value,index,[array]){},[thisValue])18 //  value -- 當前數組元素,index -- 當前數組元素的索引,array -- 調用some方法的數組,thiiValue -- 執行回呼函數時定義的this對象(內容物件)19 //  檢查是否有元素大於5,有則返回true,無則返回false20 var arr = [2,3,4,6];21 arr.some(function(val,index){22   retrun val > 5;23 });   //  返回true24 25 //  every()  =>   array.every(function(value,index,[array]){},[thisValue])26 //  value -- 當前數組元素,index -- 當前數組元素的索引,array -- 調用every方法的數組,thiiValue -- 執行回呼函數時定義的this對象(內容物件)27 //  檢查是否有元素大於5,有則返回false,無則返回true28 var arr = [1,2,3,6];29 arr.some(function(val,index){30   retrun val > 5;31 });   //  返回false32 33 //  forEach()  =>   array.forEach(function(value,index,[array]){},[thisValue])34 //  value -- 當前數組元素,index -- 當前數組元素的索引,array -- 調用forEach方法的數組,thiiValue -- 執行回呼函數時定義的this對象(內容物件)35 //  返回數組中的每一項和索引36 var arr = [7,9,5];37 arr.forEach(function(val,index,arr){38   console.log("index:" + index + ",value:" + val);39 });   40 //  返回index:0,value:741 //     index:1,value:942 //     index:2,value:5

面試題:

  1、[1,2,3].map(parseInt)傳回值是什嗎?為什嗎?

  解答:[1,NaN,NaN];由於parseInt需要倆個參數parseInt(string,[radix]),radix為解析時對應的基數(radix介於2~36之間,若radix省略或為0,則以十進位解析,當radix小於2或大於36,則返回NaN),而map傳了3參數(value,index,array),對應的基數不合法。

 

 

本文僅供自己在平時工作學習時作筆記使用!如有錯誤請多多指出!!!

JavaScript之數組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.