<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      JS中關(guān)于數(shù)組的操作

      1、如何創(chuàng)建數(shù)組:

      var arr = [];  //效率更高
      var arr1 = new Array();
      var arr2 = new Array(5);  //數(shù)組的長(zhǎng)度為5,當(dāng)參數(shù)為一個(gè)時(shí),將會(huì)認(rèn)為指定的是數(shù)組的長(zhǎng)度
      var arr3 = new Array("Saab","Volvo","BMW");
      //數(shù)組里可以存儲(chǔ)字符串、數(shù)字、數(shù)組、對(duì)象等

       

      2、字符串關(guān)于數(shù)組的方法:

      2.1、把字符串分割成數(shù)組(split)

      stringObject.split(separator, len)    //separator:必需,字符串或正則表達(dá)式    len:可選,該參數(shù)可指定返回的數(shù)組的最大長(zhǎng)度

      該方法根據(jù)第一個(gè)參數(shù)指定的字符而將字符串分割開(kāi),第二個(gè)參數(shù)是返回的數(shù)組長(zhǎng)度。該方法不會(huì)改變?cè)凶址?/p>

      var str="How are you doing today?";
      var arr=str.split(" ");  //How,are,you,doing,today?

      split()  方法用于把一個(gè)字符串分割成字符串?dāng)?shù)組。

       

      3、數(shù)組本身的方法  

      參考:http://www.runoob.com/jsref/jsref-obj-array.html

      3.1、判斷是否為數(shù)組(isArray)

      isArray() 方法用于判斷一個(gè)對(duì)象是否為數(shù)組。

      如果對(duì)象是數(shù)組返回 true,否則返回 false。

      function myFunction() {
          var fruits = ["Banana", "Orange", "Apple", "Mango"];
          var x = document.getElementById("demo");
          x.innerHTML = Array.isArray(fruits);
      }

       

      3.2、查找元素(indexOf)

      indexOf() 方法可返回?cái)?shù)組中某個(gè)指定的元素位置,開(kāi)始位置的索引為 0 ,如果在數(shù)組中沒(méi)找到指定元素則返回 -1。

      var fruits = ["Banana", "Orange", "Apple", "Mango"];
      var a = fruits.indexOf("Apple"); //output 2

       

      3.3、將數(shù)組轉(zhuǎn)換成字符串(join、toString)

      join方法可以指定分隔符,toString方法無(wú)法指定分隔符

      arrayObject.join(separator)    //separator:可選,指定字符串所使用的分隔符,默認(rèn)是逗號(hào)
      var names = ["David", "Cynthia", "Raymond", "Clayton", "Mike", "Jennifer"];
      var namestr = names.join();
      print(namestr); // David,Cynthia,Raymond,Clayton,Mike,Jennifer
      namestr = names.toString(); print(namestr); // David,Cynthia,Raymond,Clayton,Mike,Jennifer

      //事實(shí)上,當(dāng)直接對(duì)一個(gè)數(shù)組使用 print() 函數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用那個(gè)數(shù)組的 toString() 方法
      //print(names); // David,Cynthia,Raymond,Clayton,Mike,Jennifer

       

      3.4、合并數(shù)組(concat)

      concat() 方法用于連接兩個(gè)或多個(gè)數(shù)組。該方法不會(huì)改變現(xiàn)有的數(shù)組,而僅僅會(huì)返回被連接數(shù)組的一個(gè)副本。

      var hege = ["Cecilie", "Lone"];
      var stale = ["Emil", "Tobias", "Linus"];
      var kai = ["Robin"];
      var children = hege.concat(stale,kai);//Cecilie,Lone,Emil,Tobias,Linus,Robin

       

      3.5、slice分割數(shù)組(返回一個(gè)新數(shù)組,不改變?cè)瓟?shù)組)

      slice() 方法返回一個(gè)新的數(shù)組,包含從 start 到 end (不包括該元素)的元素,該方法不會(huì)改變?cè)紨?shù)組。

      var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
      var citrus = fruits.slice(1,3); //Orange,Lemon

       

      3.6、刪除或添加元素(splice)

      var fruits = ["Banana", "Orange", "Apple", "Mango"];
      fruits.splice(2,0,"Lemon","Kiwi");  //Banana,Orange,Lemon,Kiwi,Apple,Mango
      array.splice(index,howMany,item1,.....,itemX)
      //index  必需。規(guī)定從何處添加/刪除元素
      //howMany   必需。規(guī)定應(yīng)該刪除多少元素
      //item1, ..., itemX       可選。要添加到數(shù)組的新元素

      splice() 方法返回的是只包含被刪除的元素的新數(shù)組,而且會(huì)改變?cè)紨?shù)組

      注意:這種方法會(huì)改變?cè)紨?shù)組。

       

      3.7、刪除添加一個(gè)元素(pop、push、shift、unshift)

      pop() 方法用于刪除數(shù)組的最后一個(gè)元素并返回被刪除的元素。

      var fruits = ["Banana", "Orange", "Apple", "Mango"];
      fruits.pop();  //fruits: Banana,Orange,Apple

      push() 方法可向數(shù)組的末尾添加一個(gè)或多個(gè)元素,并返回新的長(zhǎng)度。

      var fruits = ["Banana", "Orange", "Apple", "Mango"];
      fruits.push("Kiwi")  //fruits:  Banana,Orange,Apple,Mango,Kiwi

      shift() 方法用于把數(shù)組的第一個(gè)元素從其中刪除,并返回被刪除的第一個(gè)元素的值。

      var fruits = ["Banana", "Orange", "Apple", "Mango"];
      fruits.shift()  //fruits:  Orange,Apple,Mango

      unshift() 方法可向數(shù)組的開(kāi)頭添加一個(gè)或更多元素,并返回新的長(zhǎng)度。

      var fruits = ["Banana", "Orange", "Apple", "Mango"];
      fruits.unshift("Lemon","Pineapple");  //fruits:  Lemon,Pineapple,Banana,Orange,Apple,Mango

       

      3.8、數(shù)組排序 (reverse、sort)

      reverse() 方法用于顛倒數(shù)組中元素的順序,返回值是顛倒順序后的數(shù)組

      var fruits = ["Banana", "Orange", "Apple", "Mango"];
      fruits.reverse();  //Mango,Apple,Orange,Banana

      sort()方法用于排序:如果元素是字符串類型,那么數(shù)組的排序方法 sort() 就非常好使;但是如果數(shù)組元素是數(shù)字類型,sort() 方法的排序結(jié)果就不能讓人滿意了:

      var names = ["David","Mike","Cynthia","Clayton","Bryan","Raymond"];
      names.sort();
      print(names); // Bryan,Clayton,Cynthia,David,Mike,Raymond

      sort() 方法是按照字典順序?qū)υ剡M(jìn)行排序的,因此它假定元素都是字符串類型,即使元素是數(shù)字類型,也被認(rèn)為是字符串類型。

      var nums = [3,1,2,100,4,200];
      nums.sort();
      print(nums); // 1,100,2,200,3,4

       為了讓 sort() 方法也能排序數(shù)字類型的元素,可以在調(diào)用方法時(shí)傳入一個(gè)大小比較函數(shù),排序時(shí),sort() 方法將會(huì)根據(jù)該函數(shù)比較數(shù)組中兩個(gè)元素的大小,從而決定整個(gè)數(shù)組的順序。

      function compare(num1, num2) {
        return num1 - num2;
      }
      var nums = [3,1,2,100,4,200];
      nums.sort(compare);
      print(nums); // 1,2,3,4,100,200

      此時(shí)sort() 函數(shù)使用了 compare() 函數(shù)對(duì)數(shù)組按照數(shù)字大小進(jìn)行排序,而不是按照字典順序

       

      3.9、數(shù)組迭代器方法(forEach、every、some、reduce、reduceRight、map、filter)

      (1)、不生成新數(shù)組的迭代器方法(forEach、every、some、reduce、reduceRight):

      forEach()方法接受一個(gè)函數(shù)作為參數(shù),對(duì)數(shù)組中的每個(gè)元素使用該函數(shù)。

      function square(num) {
        print(num, num * num);
      }
      var nums = [1,2,3,4,5,6,7,8,9,10];
      nums.forEach(square);  
      //output: 1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100

       

      every()方法接受一個(gè)返回值為布爾類型的函數(shù),對(duì)數(shù)組中的每個(gè)元素使用該函數(shù)。

      如果數(shù)組中檢測(cè)到有一個(gè)元素不滿足,則整個(gè)表達(dá)式返回 false ,且剩余的元素不會(huì)再進(jìn)行檢測(cè);

      如果所有元素都滿足條件,則返回 true。

      function isEven(num) {
        return num % 2 == 0;
      }
      var nums = [2,4,6,8,10];
      var even = nums.every(isEven);//true

       

      some() 方法也接受一個(gè)返回值為布爾類型的函數(shù),只要有一個(gè)元素使得該函數(shù)返回 true, 該方法就返回 true。

      function isEven(num) {
        return num % 2 == 0;
      }
      var nums = [1,2,3,4,5,6,7,8,9,10];
      var someEven = nums.some(isEven);  //true

       

      reduce() 方法接受一個(gè)函數(shù),返回一個(gè)值。該方法會(huì)從一個(gè)累加值開(kāi)始,不斷對(duì)累加值和數(shù)組中的后續(xù)元素調(diào)用該函數(shù),直到數(shù)組中的最后一個(gè)元素,最后返回得到的累加值。

      function add(runningTotal, currentValue) {
        return runningTotal + currentValue;
      }
      var nums = [1,2,3,4,5,6,7,8,9,10];
      var sum = nums.reduce(add);
      print(sum); // 顯示 55

       

      reduceRight() 方法,和 reduce() 方法不同,它是從右到左執(zhí)行

      function concat(accumulatedString, item) {
        return accumulatedString + item;
      }
      var words = ["the ", "quick ","brown ", "fox "];
      var sentence = words.reduceRight(concat);
      print(sentence); // 顯示 "fox brown quick the"

       

      (2)、生成新數(shù)組的迭代器方法(map、filter):

      map() 對(duì)數(shù)組中的每個(gè)元素使用某個(gè)函數(shù),返回一個(gè)新的數(shù)組,該數(shù)組的元素是對(duì)原有元素應(yīng)用這個(gè)函數(shù)得到的結(jié)果。map 方法不改變?cè)瓟?shù)組。

      array.map(function(currentValue,index,arr){}, thisValue)
      function curve(grade) {
        return grade += 5;
      }
      var grades = [77, 65, 81, 92, 83];
      var newgrades = grades.map(curve);
      print(newgrades); // 82, 70, 86, 97, 88

       

      filter() 方法檢測(cè)數(shù)組元素,并返回一個(gè)符合條件的所有元素的新數(shù)組。該方法的參數(shù)即回調(diào)函數(shù)的返回值是布爾值。

      function isEven(num) {
          return num % 2 == 0;
      }
      var nums = [];
      for (var i = 0; i < 20; ++i) {
        nums[i] = i+1;
      }
      var evens = nums.filter(isEven);
      print(evens);  //2,4,6,8,10,12,14,16,18,20

       

      4、數(shù)組中的其他方法

      4.1、arr.find() 查找某個(gè)符合條件的元素

      arr.find() 方法用于從數(shù)組中找到符合條件的第一個(gè)數(shù)組元素值,若找到則返回滿足條件的第一個(gè)元素,否則返回 undefined。

      該方法有兩個(gè)參數(shù),第一個(gè)參數(shù)是一個(gè)回調(diào)函數(shù),第二個(gè)參數(shù)指定回調(diào)函數(shù)的 this 指針,第二個(gè)參數(shù)是可選的。

      let arr = [{name: 'aaa',age: 12},{name: 'bbb',age: 22} ]
      let obj = arr.find((item) => {
          return item.name == 'bbb'
      })
      console.log(obj);   //輸出  {name: "bbb", age: 22}

       

      posted @ 2018-12-24 12:31  wenxuehai  閱讀(451)  評(píng)論(0)    收藏  舉報(bào)
      //右下角添加目錄
      主站蜘蛛池模板: 影音先锋啪啪av资源网站| 欧美日韩国产亚洲沙发| 97精品伊人久久久大香线蕉| 无码中文av波多野结衣一区| 东京热加勒比无码少妇 | 在线人人车操人人看视频 | 最新国产精品拍自在线观看| 国偷自产一区二区三区在线视频 | 久久国产成人午夜av影院| 国内免费视频成人精品| 大战丰满无码人妻50p| 老色鬼永久精品网站| 天天操夜夜操| 亚洲区综合区小说区激情区| 亚洲乱码中文字幕久久孕妇黑人| 亚洲av二区伊人久久| 沽源县| 日本东京热不卡一区二区| 久久蜜臀av一区三区| 国产女人喷潮视频免费| 亚洲午夜精品国产电影在线观看 | 久久中精品中文字幕入口| 美女又黄又免费的视频| 乱女伦露脸对白在线播放| 国产精品呻吟一区二区三区| 人妻一区二区三区三区| 国内精品自线在拍| 国产精品va在线观看无码不卡| 四虎成人免费视频在线播放 | 国产午夜福利精品视频| 在线看国产精品自拍内射| 邻居少妇张开腿让我爽了一夜| 国产一区二区日韩经典| 亚洲热无码av一区二区东京热av| 中文字幕国产精品综合| 鹤庆县| 精品无码国产自产拍在线观看蜜| 色老板精品无码免费视频| 亚洲一区二区三区| 影音先锋啪啪av资源网站| 大安市|