乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      WEB前端第二十六課——js數(shù)組

       路人甲Java 2021-09-24

      1.數(shù)組基礎(chǔ)

      ?、?nbsp;數(shù)組概念

        array是按照一定順序排列的一組值,每個(gè)值都擁有一個(gè)編號(hào),編號(hào)從0開(kāi)始從左向右依次增加

        數(shù)組中的元素可以是任何類(lèi)型的數(shù)據(jù),元素之間用逗號(hào)分隔,整個(gè)數(shù)組由方括號(hào)([…])包裹

      ?、?數(shù)組本質(zhì)

        本質(zhì)上,數(shù)組是對(duì)象類(lèi)型的一種特殊表現(xiàn)形式,

        因此,可以使用 new方式創(chuàng)建數(shù)組

        示例:var namelist=new Array('Jim','John','Bater'); // ['Jim','John','Bater']

      ?、?nbsp;數(shù)組長(zhǎng)度

        JavaScript中的數(shù)組元素可以是任何類(lèi)型的數(shù)據(jù),而在計(jì)算機(jī)內(nèi)存中不同類(lèi)型的數(shù)據(jù)是分區(qū)存儲(chǔ)的,因此,JavaScript中的數(shù)組元素在內(nèi)存中的存儲(chǔ)位置是不連續(xù)的

        無(wú)法按照內(nèi)存地址訪(fǎng)問(wèn)數(shù)組元素,所以計(jì)算數(shù)組長(zhǎng)度的時(shí)候只需要計(jì)算數(shù)組元素的個(gè)數(shù)即可,JavaScript通過(guò)使用下標(biāo)的方式對(duì)數(shù)組元素進(jìn)行標(biāo)記,數(shù)組的下標(biāo)則是連續(xù)的

        通過(guò) .length屬性計(jì)算數(shù)組長(zhǎng)度,語(yǔ)法:arr . length;

          length是可寫(xiě)屬性,如果設(shè)置length長(zhǎng)度小于數(shù)組本身長(zhǎng)度,那么多余元素會(huì)被舍棄

                     如果設(shè)置length長(zhǎng)度大于數(shù)組本身長(zhǎng)度,那么缺少元素用空位補(bǔ)齊

                     如果設(shè)置length長(zhǎng)度不是合法數(shù)值,那么會(huì)報(bào)錯(cuò)“invalid array length”

          示例:var arr=[a,b,c,d];

             arr.length=3;

             console.log(arr.length);  //3

             console.log(arr);  // [a,b,c]

             console.log(arr[4]);  // undefined

             arr.length=-1;

             console.log(arr.length);  //Uncaught RangeError: invalid array length(…)

       ④ 數(shù)組遍歷

        可以使用 for in快速訪(fǎng)問(wèn)數(shù)組中的每一個(gè)元素

        示例:var nameArr = ['John','Anna','Hauk'];

           for (var index in nameArr){

            console.log(nameArr[index]);

           }

           返回結(jié)果:John  Anna  Hauk

        for in循環(huán)遍歷數(shù)組的時(shí)候,index表示數(shù)組中元素的下標(biāo),是自定義變量

      ?、?nbsp;數(shù)組空位

        當(dāng)數(shù)組某個(gè)位置是空元素,即兩個(gè)逗號(hào)之間沒(méi)有任何值,則該數(shù)組存在空位(hole)

        var arr = ['John','','Sami'],示例中間引號(hào)所代表的的元素不屬于空位,空位沒(méi)有任何值(表現(xiàn)為undefined),但空位占據(jù)數(shù)組length長(zhǎng)度

      ?、?數(shù)組刪除

        delete命令可以刪除數(shù)組中元素的值,從而形成空位,但delete命令并不會(huì)影響 length的屬性

        delete命令在使用過(guò)程中,是根據(jù)數(shù)組的下標(biāo)來(lái)鎖定元素進(jìn)行刪除的

        語(yǔ)法:delete 變量名[下標(biāo)];

      2.數(shù)組調(diào)用

        數(shù)組調(diào)用指的是數(shù)組元素的調(diào)用,通過(guò) “數(shù)組名[下標(biāo)]” 的方式對(duì)數(shù)組元素進(jìn)行訪(fǎng)問(wèn)

        數(shù)組元素每次只能訪(fǎng)問(wèn)一個(gè),如果要調(diào)用多個(gè)元素,可以通過(guò)循環(huán)語(yǔ)句進(jìn)行連續(xù)調(diào)用

        示例:

      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Array</title>
          <style>
              input{
                  outline: none;
              }
          </style>
      </head>
      <body>
          <span>名稱(chēng)</span>
          <input type="text" id="nameInput">
          <button id="submitButton">提交</button>
      <script>
          var nameInput=document.getElementById("nameInput");
          var submitButton=document.getElementById("submitButton");
          submitButton.onclick=function () {
              var nameStr=nameInput.value;
              var nameArr=nameStr.split(",");
              for (var i in nameArr){
                  console.log(nameArr[i]);
              }
          }
      </script>
      </body>
      </html>
      

      3.數(shù)組方法

        ① isArray,判斷變量是否為數(shù)組

          如果是數(shù)組返回 true,否則返回 false,使用對(duì)象Array調(diào)用該方法

          語(yǔ)法:Array. isArray(變量名);

       ?、?nbsp;valueOf(),返回?cái)?shù)組本身

          該方法歸屬于Object對(duì)象類(lèi)型,作用是返回指定對(duì)象的原始值,在數(shù)組中的作用是返回?cái)?shù)組本身 (很少使用)

          語(yǔ)法:數(shù)組名 .valueOf();

          JavaScript中許多內(nèi)置對(duì)象都重寫(xiě)了該函數(shù),以便更適合自身的功能需要,因此,不同類(lèi)型對(duì)象的 valueOf方法的返回值和返回值類(lèi)型均有可能不同

       ?、?nbsp;toString(),將數(shù)組以字串的形式返回

          不僅能夠?qū)?shù)組轉(zhuǎn)換成字符串,布爾值也可以轉(zhuǎn)換,返回值之間默認(rèn)逗號(hào)分隔

          語(yǔ)法:數(shù)組名.toString();

       ?、?nbsp;push,向數(shù)組末尾追加數(shù)據(jù),返回當(dāng)前數(shù)組的長(zhǎng)度

          可以向數(shù)組末尾添加一個(gè)或多個(gè)元素,返回值為追加元素后數(shù)組的長(zhǎng)度length

          語(yǔ)法:數(shù)組名 .push('item1', 'item2',…);

          ★ push方法會(huì)改變?cè)瓟?shù)組內(nèi)容

       ?、?nbsp;pop,刪除數(shù)組最后一個(gè)元素

          返回值為刪除的這個(gè)元素

          語(yǔ)法:數(shù)組名 .pop();

          ★ pop方法會(huì)改變?cè)瓟?shù)組內(nèi)容

       ?、?nbsp;join,將數(shù)組轉(zhuǎn)換為字符串,默認(rèn)用逗號(hào)隔開(kāi)

          以給定的參數(shù)做為分隔符,將數(shù)組轉(zhuǎn)換為字符串,如果不設(shè)置參數(shù),則默認(rèn)使用逗號(hào)分隔

          語(yǔ)法:數(shù)組名 .join(' 分隔符 ');

        ⑦ shift(),刪除數(shù)組的第一個(gè)元素

          返回值未刪除的這個(gè)元素

          語(yǔ)法:數(shù)組名 .shift();

          ★ shift方法也會(huì)對(duì)原數(shù)組造成影響

        ⑧ unshift(),向數(shù)組前端添加元素

          可以向數(shù)組最前端添加一個(gè)或多個(gè)元素,返回值為添加元素后數(shù)組的長(zhǎng)度length

          語(yǔ)法:數(shù)組名 .unshift('item1','item2',…);

          ★ unshift方法也會(huì)對(duì)原數(shù)組造成影響

       ?、?reverse,數(shù)組反轉(zhuǎn)

          將數(shù)組中元素的順序反向排列

          語(yǔ)法:數(shù)組名 .reverse(); //括號(hào)內(nèi)不需要任何參數(shù)

          ★ reverse方法也會(huì)改變?cè)瓟?shù)組的結(jié)構(gòu)

        ⑩ slice,數(shù)組截取

          slice方法能夠根據(jù)指定的開(kāi)始和結(jié)束下標(biāo),對(duì)數(shù)組進(jìn)行截取,并生成一個(gè)新的數(shù)組

          新數(shù)組的內(nèi)容包括開(kāi)始下標(biāo)對(duì)應(yīng)的元素到結(jié)束下標(biāo)對(duì)應(yīng)的前一個(gè)元素,即不包含結(jié)束下標(biāo)所對(duì)應(yīng)的元素本身 ★

          語(yǔ)法:數(shù)組名 .slice(index1,index2);   //返回值未生成的數(shù)組

          slice方法的參數(shù)可以是負(fù)數(shù),-1代表最后一個(gè)元素,-2代表倒數(shù)第二個(gè)元素,以此類(lèi)推

          如果只寫(xiě)一個(gè)參數(shù),則表示對(duì)從當(dāng)前下標(biāo)對(duì)應(yīng)的元素一直到最后一個(gè)元素進(jìn)行截取

          該方法不更改原數(shù)組!

        ? splice,數(shù)組截取,并且可以插入新的元素(改變?cè)瓟?shù)組)

          splice方法是根據(jù)指定的下標(biāo)和長(zhǎng)度數(shù),對(duì)數(shù)組進(jìn)行一定長(zhǎng)度的截取,同時(shí)可以根據(jù)增加參數(shù)向數(shù)組中插入一些新元素

          返回值為截取元素所構(gòu)成的數(shù)組

          語(yǔ)法:數(shù)組名 .splice(index, removeCount, addItem1, addItem2,…);

          ★ splice方法會(huì)改變?cè)瓟?shù)組的內(nèi)容

          方法中插入新元素的參數(shù)不是必須設(shè)置,前兩個(gè)參數(shù)為必須

        ? sort,數(shù)組排序

          語(yǔ)法:數(shù)組名 .sort(sortby);

          排序順序可以按編碼或數(shù)字,并按升序或降序

          默認(rèn)按照數(shù)組中元素的編碼進(jìn)行排序,此時(shí)括號(hào)內(nèi)不需要設(shè)置參數(shù)

          也可以設(shè)置sortby函數(shù)定義按數(shù)字排序,參數(shù)sortby必須是函數(shù),通過(guò)函數(shù)指定升序或降序

          ★ sort方法會(huì)改變?cè)瓟?shù)組的內(nèi)容

        ? indexOf,對(duì)數(shù)組進(jìn)行索引

          在數(shù)組中從前向后檢索指定元素,返回值為元素在數(shù)組中第一次出現(xiàn)的下標(biāo),如果沒(méi)有檢索到則返回 -1

          indexOf方法的第二個(gè)參數(shù)表示從第幾個(gè)元素開(kāi)始檢索,是可選參數(shù)

          語(yǔ)法:數(shù)組名 .indexOf(item, beginIndex);

          第二個(gè)參數(shù)可以設(shè)置負(fù)數(shù),-1表示從最后一個(gè)(倒數(shù)第一個(gè))元素開(kāi)始向后查找

        ? lastIndexOf,反序索引

           在數(shù)組中從后向前檢索指定元素,返回值為元素在數(shù)組中最后一次出現(xiàn)的下標(biāo),如果沒(méi)有檢索到則返回-1

          lastIndexOf方法的第二個(gè)參數(shù)表示從第幾個(gè)元素開(kāi)始檢索,是可選參數(shù)

          語(yǔ)法:數(shù)組名 .lastIndexOf(item, beginIndex);

          第二個(gè)參數(shù)可以為負(fù)數(shù),-1表示從最后一個(gè)元素開(kāi)始向前查找

        ? concat,用于連接兩個(gè)或多個(gè)數(shù)組

          語(yǔ)法:array1 .concat(array2,array3,...);

          ★ 該方法不會(huì)改變?cè)瓟?shù)組,而僅僅返回連接數(shù)組的一個(gè)副本(新數(shù)組)

      <script>
          var arrOne=[100,200,300,400];
          var arrTwo=[500,600,700,800];
          var arrTogether=arrOne.concat(arrTwo);
          arrTogether.push(10);
          arrTogether.unshift(1);
          console.log(arrTogether);
      </script>
      

      4.二維數(shù)組

        如果數(shù)組的元素還是數(shù)組,那么外層數(shù)組就稱(chēng)為二維數(shù)組

        語(yǔ)法:var arr=[[array1], [array2], [array3]];

        二維數(shù)組有兩個(gè)下標(biāo),第一個(gè)下標(biāo)表示外層數(shù)組的下標(biāo),第二個(gè)下標(biāo)表示內(nèi)層數(shù)組的下標(biāo),如 arr[1][0];

        二維數(shù)組是數(shù)組的一種特殊形式,數(shù)組的方法對(duì)二維數(shù)組任然生效

      5.push、unshift練習(xí)

      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Array</title>
      </head>
      <body>
      
      <script>
          var arrOne=[100,200,300,400];
          var arrTwo=[500,600,700,800];
          for (var i in arrTwo){
              arrOne.push(arrTwo[i]);
          }
          arrOne.push(10);
          arrOne.unshift(1);
          console.log(arrOne);
      </script>
      </body>
      </html>
      

      6.push、pop練習(xí)

      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Array_push&pop</title>
          <style>
              input{
                  outline: none;
              }
          </style>
      </head>
      <body>
          <span>倉(cāng)庫(kù)</span>
          <input type="text" id="storage">
          <button id="putIn">入庫(kù)</button>
          <button id="takeOut">出庫(kù)</button>
      <script>
          var storage=document.getElementById("storage");
          var goods=[];
          storage.value=goods.length;
          var putIn=document.getElementById("putIn")
          putIn.onclick=function () {
              if (storage.value==5){
                  alert("倉(cāng)庫(kù)已滿(mǎn)!");
              }else{
                  goods.push('貨物');
                  storage.value=goods.length;
              }
          }
          var takeOut=document.getElementById("takeOut");
          takeOut.onclick=function () {
              if (storage.value==0){
                  alert('倉(cāng)庫(kù)已空!');
              }else{
                  goods.pop();
                  storage.value=goods.length;
              }
          }
      </script>
      </body>
      </html>
      

       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多