1. 程式人生 > >w的學習筆記04.(2019年1月10日)

w的學習筆記04.(2019年1月10日)

今天學習的內容
1:複習上次課
  for
  while

  陣列   陣列名.length    下標
  var arr=[23,45,67];
  var a = arr[arr.length-1];
  for(;;){}
  while(true){}
 =============================================================================================
今天新的內容 陣列的相關方法
   
今天新的內容
#新學習陣列相關方法
1、join                                        *****
    功能:將陣列拼接字串
    示例:
    var arr = ['abc','bcd','a11'];
    -->"abcbcdea11"  
    var word = arr.join(分隔符);
    示例:
    var provs = ["北京市","天津市","瀋陽市"];

    <select><option>
    北京市
          </option><option>
    天津市
          </option><option>
    瀋陽市
    </option></select>

2、連線陣列..                                   ***
    #不修改原陣列內容,返回新陣列
    #在程式必須要用新變數接收新陣列
    陣列.concat(值1,值2....,陣列);

3、獲取子陣列                                  *****
    陣列.slice(開始位置,結束+1);
    開始位置
    結束位置 支援負數
    #如果你傳入負數:自動 length負數  
    var id = [1,1,0,1];
    var rs = id.slice(1,3);
    console.log(rs);
    var id = [1,1,0,1];
    var rs = id.slice(-3,-1);
    //id.length-3 = 1
    //id.length-1 = 3
    rs = id.slice(1,3);
    console.log(rs);


4、顛倒陣列元素順序                            ***
    #reverse()


5、splice() 刪除元素  新增元素  替換元素       *****

    a:刪除
      var arr = [1,2,3,4,5];
      var del = arr.splice(開始位置,刪除幾個);

      var del = arr.splice(3,2);
    b:插入
      arr.splice(開始位置,0,99,100,101);
    c:
      arr.splice(開始位置,1,2,3);


6排序                                          *****
    6.1:手寫排序演算法
      冒泡 選擇  插入 ...   
    6.2:呼叫js陣列自帶方法 sort();
        var arr = [1,9,10,2,3];
        var arr = [1,2,3,9,10];
        #sort方法排序時按照.預設unicode
        #由sort方法預設按照unicode排序
        #按數字排序
        1:二個比較 小數放前  return 負數    a-b
        2: 二個比較 大數放後  retrun 正數    b-a
        3: 二個比較 相同      return 0
        #寫一個方法定義排序規則
        function comp(a,b){
          if(a<b){       
                         
           return -1;
          }             -------------------------->retun a-b;
          if(a>b){
           return 1;
          }    
          if(a==b){
           return 0;
          }
        }
        arr.sort(comp);
7、棧和佇列:                                   *****
      一種特殊陣列:一端封閉,只能從另一端進出資料..
    #非常靈活..
    var arr = [1,2,3];

    先進後出..
        如何使用:
        1:入 arr.push(值);
        2:出 var last = arr.pop();
         開頭封閉,結尾出入棧
         出棧入棧不影響原有元素下標

        1:結尾封閉,開頭出入棧
        入:arr.unshift(值);
        出:var first = arr.shift();
        #每次出棧入棧,都影響所有元素下標{慢}

        陣列:
        1:var arr = [];   
          arr[0];
        2:push() pop();


練習:
      var arr = [];

    1:請使用者輸入單詞
      var input = prompt('請輸入單詞');
        while(input != 'exit'){
    2:儲存陣列
      arr.push(input);
      input = prompt('請輸入單詞');
      }
    3:以上二步操作迴圈

    4:如果使用者輸入 exit 迴圈退出
    5:輸出所有陣列中儲存單詞
      console.log(arr.toString());




#特殊陣列
#資料結構[棧,佇列]
#佇列:只能從一端進入,必須從另一端出
如何使用:
結尾入佇列: arr.push(值);   pop
開頭出佇列: arr.shift();    shift


#二維陣列
陣列中的元素,又引用另一個子陣列;
何時使用:
1:只要儲存橫行豎列的二維陣列
2:儲存上下級包含關係

如何定義二維陣列:
1:建立同時,就要初始化
  var arr = [
   [0,2,0,0],
   [4,4,8,0],
   [0,0,0,0],
   [0,0,0,0]
  ];
  arr[0][1];
  arr[1][0];
  arr[1][2];
2:先建立一維陣列,再賦值
  var arr1 = [];
  arr1[0] = [1,3,5,7,9];
  arr1[1] = [2,4,6,8,10];


#遍歷陣列,使用迴圈完成
1:for(){}
2:for(){}多層for

#二層迴圈
document.write("*");


















今天內容
1:資料常用方法
 join();    將陣列拼接字串
 concat();  將多個數據拼接成一個大陣列
 slice();   獲取子陣列
 splice();  刪除陣列新增陣列
2:二維陣列
  var arr =
  [
  [1,2,3],
  [2,4,6]
  ];
  var arr = [];
  arr[0] = [1,2,3,4];
  arr[1] = [2,3,4,5];
3:二層迴圈
  外層迴圈  控制行
  內層迴圈  控制列
4:圖形