在瀏覽器中運用JavaScript技術處理統計數據具有最佳的推廣傳播效果
數組是相同數據類型的數據按一定順序排列的集合,組成數組的數據稱為數組的元素。即數組是在程序設計中,為了處理方便,把具有相同類型的數據按有序的形式組織起來,這些按序排列的同類數據元素的集合稱為數組。
在程序執行過程中,數組具有運行速度快、占用內存少、處理方便等優勢。幾乎所有編程語言中都有數組這一數據類型和相關原生函數。JavaScript(簡稱JS)也不例外,隨着版本的不斷更新發展,JS數組功能也在不斷提升。統計學中不同類型統計數據(截面數據、時間序列和面板數據)都可以通過JS數組來處理。熟練掌握JS數組技術是進入統計數據編程領域的基礎。
1、數組定義的方式
[返回]var aArr = new Array(); var bArr = new Array(10); var cArr = new Array("first", "second", "third");
var valArr = [23, 45, 41, 87]; var strArr = ["first", "second", "third"];
掌握JS數組對於網上統計數據處理致關重要。在銀河網絡統計學平台中,一般使用JS數組直接量方式表達和處理統計數據。
2、按靜態方式創建數組
[返回]var arr1 = [23,45,67,12,33]; //一維數組 var arr2 = [[23,45,67],[21,12,33],[41,15,36]]; //二維數組(3行x3列) var arr3 = [[23,45],[21,12,33,12],[41,15,36]]; //二維數組(不規則) var arr4 = [[23,45],123,[41,[15,36]]]; //混合數組
3、按動態方式創建數組
[返回]var arr = []; //空數組 arr[0] = 10; //第1個元素為10 arr[1] = 12; arr[2]=[] //第3個元素為空數組 arr[2][0]=15; //第3個數組元素的第1個元素為15 arr[2][1]=20; //第3個數組元素的第1個元素為15
注:數組是一組有序的數據集合,其索引從0開始
4、數組元素的引用和修改
[返回]console.clear(); //清空輸出工作台 var arr = [23,45,67,12,33]; var oVal = arr[1]; //引用:將數組第2個元素45賦值給變量oValue arr[4] = 50; //修改:將數組第5個元素33改為50 var arrs = [[23,45],123,[41,[15,36]]]; arrs[0][1] //45 arrs[1] //123 var val = arrs[2][1][0] //15 console.log(val); //輸出指定變量 arrs[0][1] = 99; arrs[1] = 100; arrs[2][1][0] = 50;
5、添加和刪除元素
[返回]console.clear(); var arr = [23,45,67,12,33]; arr.push(100,200); //添加數據到結尾 arr.unshift(200,100); //添加數據到開始 console.log(arr); arr.pop(); //刪除原數組最后一項 arr.shift(); //刪除原數組第一項 console.log(arr); arr = [23,45,67,12,33]; arr.splice(3,0,100,200) //插入100和200到67后面 console.log(arr); arr = [23,45,67,12,33]; arr.splice(2,1,100,200) //將100和200插入45之后並刪除67 console.log(arr);
注:splice函數對數組插入並刪除元素。arr.splice(index,howmany,item1,item2,...)中,index:指定新元素插入(或刪除)的位置;howmany:要刪除的項目數量(howmany為 0,則為插入);item1,item2,...:要插入(或刪除)的新元素項
6、數組的截取、拷貝和合並
[返回]console.clear(); var arr; var arr1 = [2,4,7,1,3]; var arr2 = [3,5,6,2,7]; var arr3 = [4,5,1,7,9]; arr = arr1.slice(1,4); //以數組的形式返回數組第1-3個元素,注意不包括第4個元素; //如果省略第2個參數4,將復制第1個參數1之后的所有元素 arr = arr1.slice(0); //返回數組的拷貝數組,注意是一個新的數組,不是指向 arr = arr1.concat(arr2,arr3); //將多個數組連接為一個數組,返回連接好的新的數組 arr = arr1.concat(arr2,100,200); arr = arr1.concat(100,200,arr2,200,100); arr = arr1.concat("myArray",arr2); console.log(arr);
7、一維數組排序
[返回]console.clear(); var arr,arr1,arr2,arr3,arr4; arr = [2,4,7,1,3]; arr1 = arr.slice(0); arr2 = arr.slice(0); arr3 = arr1.sort(); //對數組元素排序(升序) arr4 = arr2.reverse(); //反轉元素(最前的排到最后、最后的排到最前) console.log(arr3.reverse()); //輸出arr3的倒序 var arr5=["George","John","Thomas","James","Adrew","Martin"]; arr5.sort(); //直接按英文字母順序排序 console.log(arr5); //兩個比較的元素分別為a, b var arr = [12,21,24,32,45,32,12,32,43]; //升序 arr.sort((a, b) => { return a - b }) console.log(arr) //降序 arr.sort((a, b) => { return b - a }) console.log(arr) //亂序 arr.sort((a, b) => { return Math.random()*2 - 1; }) console.log(arr)
注:arrNew = arrOld.sort()這行代碼運行后,數組arrOld同時被排序,原數組的結構被打亂。為了保留原數組,可先用這行代碼arrCopy = arrOld.slice(0)將數組arrOld備份到數組arrCopy中保留。arrNew = arrOld.reverse()同理。
8、數組常用方法總結
[返回]console.clear(); var arr, str; var arr1 = [2,4,7,1,3]; var arr2 = [2,9,6]; var arr3 = [3,6,5,3]; arr = arr1.concat(arr2,arr3); //連接兩個或更多的數組,返回新數組 arr = arr1.slice(1,4); //按指定起始下標返回數組片段 str = arr1.toString(); //把數組轉換為字符串 str = arr1.join(":"); //返回指定分隔符的字符串 arr1.pop(); //刪除數組最后一個元素 arr1.push(9,9,9); //向數組的末尾添加一個或更多元素 arr1.reverse(); //顛倒數組中元素的順序 arr1.sort(); //對數組的元素進行正序排序 arr1.shift(); //刪除第一個元素並返回數組 arr1.unshift(8,8,8); //向數組的開頭添加一個或更多元素 arr1.splice(1,2,7,7); //刪除元素,並向數組添加新元素 console.log(arr);
最后需要強調一下,JS數組的屬性不多,最常用的設length屬性,即返回數組元素總數。樣例代碼如下:
console.clear(); var arr, str; var arr1 = [2,4,7,1,3]; var arr2 = [2,9,6]; console.log(arr1.length); //5 console.log(arr2.length); //3
本文只介紹了JS數組的基本用法,當我們循序學完函數、對象等知識后,“數組進階”還將進一步介紹JS數組的其它強大功能,從而滿足承載和處理統計數據的要求。
提示:本頁中JS腳本代碼可復制粘貼到JS代碼運行窗口調試體驗; 文本編輯快捷鍵:Ctrl+A - 全選;Ctrl+C - 復制; Ctrl+X - 剪切;Ctrl+V - 粘貼