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:图形

原文地址:https://www.cnblogs.com/caogn/p/10247888.html