JavaScript初階(十)---------- 數組
數組
數組的定義
1.數組字面量(直接量)
var arr = [1, 2, 3];
2.利用構造函數
new Array(length/content)
var arr = new Array(1,2,3,4); arr = [1,2,3,4]
如果只傳一位參數就代表數組的長度。註意:數組只能溢出寫不能溢出讀。
數組方法(重點)
能改變原數組的7種方法
1. arr.push( )
從數組最後添加元素。
var arr = [1,2,3,4]; arr.push(123,[],{})
仿寫一個push方法
Array.prototype.push = function(target){ var len = this.length; (this[len] = target; //一個參數) for(var i = 0; i < arguments.length; i++){ this[this.length] = arguments[i];//多個參數 }
2. arr.pop( ) 不用傳參數
剪切數組最後那個元素並返回。
3. arr.shift( ) 不用傳參數
在前面剪切元素並返回。
4. arr.unshift( )
在數組前面添加元素。可以一個,也可以多個,例如
var arr = [1,2,3,4]; arr.unshift(0);//******arr = [0,1,2,3,4]
var arr = [1,2,3,4]; arr.unshift(-2,-1,0);//************arr=[-2,-1,0,1,2,3,4]
5. arr.reverse( )
將數組元素逆轉。
6. arr.splice( )
可傳入多個參數,返回的是剪切的數組,第一個參數是開始操作位,第二個是剪切長度,之後的參數都是從操作位添加元素。
var arr = [1,2,3,4]; arr.splice(0,2); //返回的是剪切的數組 [1,2],這時候arr=[3,4]
當剪切長度是0的時候,可以用來添加元素 這種方法常用來插入數據
var arr = [1,2,3,4]; arr.splice(0,0,5,6,7); //返回的是 [] ,這時候arr= [5,6,7,1,2,3,4]
7. arr.sort( ) 用來排序
arr.sort( )自己的方法是通過ASCII進行排序。一般我們都是自定義方法,自定義規則。關註返回值,如果返回的是正數,那麽後面的數在前面,如果返回的是負數,那麽前面的數
在前。操作數,會將數組中的任意的兩位數傳到函數裏面,當做a,和b,然後根據返回值,按照上述方法進行排序。例如:
var arr = [2,9,6,1,7,8,3]; arr.sort(function (a,b) { if(a > b){ return 1; }else{ return -1; } } //arr [1,2,3,6,7,8,9] 正序 arr.sort(function (a,b){ if(a < b){ return 1; }else{ return -1; } } //arr [9,8,7,6,3,2,1]; 倒序
簡寫如下:
var arr = [1,6,2,7,8] arr.sort(function (a,b) { return a-b;//正序 return b-a;//倒序 })
將正序的數組隨機排列:
var arr = [1,2,3,4,5,6,7,8]; arr.sort(function () { var ret = Math.random() - 0.5; return ret; })
將對象按照某個屬性排列:
var arr = [{name:‘大明‘,age:20},{name:‘小明‘,age:18}] arr.sort(function (a,b){ return a.age - b.age; }
以上7種方法都能改變原數組 push() pop() shift() unshift() reverse() splice() sort()
不能改變原數組的2種方法
1. arr.concat( )
對兩個數組進行連接
var arr = [1,2,3]; var arr1 = [2,3,4]; var arr2 = arr.concat(arr1); // [1,2,3,2,3,4]
2. arr.join( )
將數組按照傳進去的符號進行連接,最後轉化為字符串返回。默認是逗號連接。
var arr = [1,2,3]; arr.join("-") // "1-2-3"
3. arr.toString( )
將數組的每一位轉化為字符串並返回
var arr1= [[],1,2,3]; arr1.toString(); var arr2 = [{},1,2,3]; arr2.toString();
結果如下:
4. str.split( ) 這是字符串的方法,操作的是字符串,剛好與join相反
將字符串按照傳進去的符號拆分為字符串形式的數組
var arr = [1,2,3]; var str1 = arr.join("-") // "1-2-3" str.split(‘-‘); //["1","2","3"]
從上面我們可以知道,這個方法可以將數組裏面的元素變成字符串的形式。
接下來看到例題鞏固一下: 用最快的方法將以下字符串拼接為字符串:“上海”,“北京”,“中山”,“深圳”,“廣州”,“梅州”
方法一: 棧操作(耗性能)
var str = ""; str += "上海"+“北京”+“中山”+“深圳”+“廣州”+“梅州”;//"上海北京中山深圳廣州梅州"
方法二: 堆操作(利用數組)
var arr = ["上海","北京","中山","深圳","廣州","梅州"]; arr.join(‘‘); //"上海北京中山深圳廣州梅州"
JavaScript初階(十)---------- 數組