1. 程式人生 > >JavaScript初階(十)---------- 數組

JavaScript初階(十)---------- 數組

來看 src .proto 對象 clas 定義 eve shift fun

數組

  數組的定義

    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初階(十)---------- 數組