国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Js基礎(chǔ)-復(fù)雜數(shù)據(jù)類型之?dāng)?shù)組

這篇具有很好參考價(jià)值的文章主要介紹了Js基礎(chǔ)-復(fù)雜數(shù)據(jù)類型之?dāng)?shù)組。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

定義

數(shù)組,就是一組相關(guān)的值存儲(chǔ)在一塊連續(xù)的空間內(nèi)

一般的高級(jí)編程語(yǔ)言都有數(shù)組這種數(shù)據(jù)結(jié)構(gòu)

語(yǔ)法

數(shù)組有三種定義方式,如下

  • 使用中括號(hào)直接定義數(shù)組

    var array = [12,13,14,15,16,17]
    
  • 使用 new Array() 方法 傳入數(shù)組元素

    var array = new Array('A', 'B','C','D','E')
    
  • 使用 new Array() 方法,傳入長(zhǎng)度, 這種不能賦值,只能指定長(zhǎng)度

    
    // 這種方式只能定義數(shù)組的長(zhǎng)度是4(容納4個(gè)元素), 但并沒有給4個(gè)元素賦初值, 這4個(gè)元素的初始值都是 undefined
    var array = new Array(4); 
    

JS 的數(shù)組中的數(shù)據(jù)可以不是同一種數(shù)據(jù)類型

<script>
    var array = ["A", 12, true];
    console.log(array);
</script>

數(shù)組的長(zhǎng)度用 length屬性表示

<script>
    var array = ["A", 12, true];
    console.log(array.length);
</script>

取值

數(shù)組的取值需要有以下幾點(diǎn)注意

  • 數(shù)組定義了下標(biāo), 傳入下標(biāo)就可以得到某個(gè)值, 值得注意的是, 數(shù)組的下標(biāo)從0開始計(jì)數(shù)

Untitled.png

<script>
      var array = ["A", 12, true];
      console.log(array[0]);
</script>
  • 如果我們傳入了一個(gè)超過數(shù)組長(zhǎng)度的下標(biāo), 則會(huì)返回 undefined
<script>
      var array = ["A", 12, true];
      console.log(array[3]);
    </script>

改值

如果我們要修改數(shù)組當(dāng)中的某個(gè)元素, 我們只需要 用如下語(yǔ)法

<script>      
	var array = ["A", 12, true];      
  console.log(array);      
  array[0] = "B";// 修改數(shù)組中的值      
  console.log(array);
</script>

如果傳入的數(shù)組下標(biāo)對(duì)應(yīng)的位置本身沒有值, 則相當(dāng)于新增元素

<script>      
	var array = ["A", 12, true];      
	console.log(array);// 如果更改了不存在的項(xiàng),則相當(dāng)于在此數(shù)組下標(biāo)下新增項(xiàng)目      
  array[5] = "B";      
  console.log(array);
</script>

數(shù)組作為一種復(fù)雜的數(shù)據(jù)結(jié)構(gòu),還定義了很多方法幫助我們存取值

方法 功能
push 在尾部插入新項(xiàng), 可以一次插入多個(gè)值
pop 彈出尾部數(shù)據(jù)(在數(shù)組中傷處)
unshift 在頭部插入新元素
shift 在頭部刪除

下面是這些元素的示例

push 方法

<script>
      var array = ["ABC", "EFG", "HIJ"];

      array.push("EE");
      array.push("CC", "DD");
      console.log(array);
    </script>

pop 彈出尾方法

<script>
      var array = ["ABC", "EFG", "HIJ"];
      console.log(array.pop());
      console.log("after pop array:" + array);
    </script>

unshift 數(shù)組頭部插入

<script>
      var array = ["ABC", "EFG", "HIJ"];
      array.unshift("kaka");
      console.log("array:" + array);
    </script>
<script>
  var array = ["ABC", "EFG", "HIJ"];
  console.log(array.shift());
  console.log("array:" + array);
</script>

數(shù)組常用方法

在取值的小節(jié)中,我們已經(jīng)介紹過4個(gè)常用方法;事實(shí)上數(shù)組的常用方法遠(yuǎn)不止這些,下面我們來(lái)補(bǔ)充一些

splice 方法

常用于替換、插入、刪除現(xiàn)有數(shù)組元素

  • 用于替換數(shù)組中的指定項(xiàng)

    <script>
          var array = ["A", "B", "C", "D", "E", "F", "G", "H"];
          // 第一個(gè)參數(shù) 2 表示從數(shù)組下標(biāo) 2 開始替換(包含數(shù)組下標(biāo)2)
          // 第二個(gè)參數(shù) 4 表示連續(xù)替換4項(xiàng), 如果長(zhǎng)度大于 字符串剩余長(zhǎng)度, 則取剩余的全部
          // 從第三個(gè)參數(shù)開始就是要替換成的內(nèi)容
          // 返回值 resultArray 表示 已經(jīng)被替換掉的元素組成的數(shù)組,在本示例中就是  ['C', 'D', 'E', 'F']
    			var resultArray = array.splice(2, 4, "hello", "world", "akd");      
    			console.log(array);
        </script>
    
  • 此方法還可以在指定位置插入元素

    <script>
    	  var array = ["A", "B", "C", "D", "E", "F", "G", "H"];
        // 第二個(gè)參數(shù)為 0 ,表示連續(xù)替換 0項(xiàng), 也就是 從 數(shù)組下標(biāo)2開始連續(xù)插入 三個(gè)元素
    	  var resultArray = array.splice(2, 0, "hello", "world", "akd");
    	  console.log(array);
    	  console.log(resultArray);
    </script>
    
  • 刪除元素

    <script>
          var array = ["A", "B", "C", "D", "E", "F", "G", "H"];
          // 沒有指定的要替換的元素,也就是意味著要?jiǎng)h除
          var resultArray = array.splice(2, 3);
          console.log(array);
          console.log(resultArray);
      </script>
    

slice 方法

常用于 從原有數(shù)組截取到一個(gè)子數(shù)組

  • slice(index1, index2) 方法 截取的子數(shù)組 從 下標(biāo) 為 index1 開始, 到下標(biāo) index2 (不包含index2) 結(jié)束, 并且不會(huì)更改原有數(shù)組

    <script>
        var array = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
        // 輸出 ['B', 'C', 'D'] 
        var arraySlice = array.slice(1, 4);
        console.log("arraySlice:", arraySlice);
    		// 原數(shù)組不會(huì)改變 ['A', 'B', 'C', 'D', 'E', 'F', 'G']
        console.log("array:", array);
    </script>
    
  • slice 如果不提供第二個(gè)參數(shù)(index2), 則表示從指定索引位置開始到數(shù)組結(jié)束的所有元素都會(huì)截取成為子數(shù)組

    <script>
        var array = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
        var arraySplit = array.slice(1);
        // 輸出 ['B', 'C', 'D', 'E', 'F', 'G']
        console.log("arraySplit:", arraySplit);
        // 輸出 ['A', 'B', 'C', 'D', 'E', 'F', 'G']
        console.log("array:", array);
    </script>
    
  • slice 方法的參數(shù)允許為負(fù)數(shù), 表示數(shù)組的倒數(shù)第幾項(xiàng)(從右向左 -1 開始 -N結(jié)束)

    <script>
            var array = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
            var arraySplit = array.slice(-3, -1);
            // 輸出 ['E', 'F']
            console.log("arraySplit:", arraySplit);
            console.log("array:", array);
        </script>
    

concat() 方法

合并多個(gè)數(shù)組,輸出為一個(gè), 并且 concat 數(shù)組不會(huì)改變?cè)瓟?shù)組

<script>
    var array1 = ['A', 'B', 'C'];
    var array2 = ['D', 'E', 'F'];
    var array3 = ['G', 'H', 'I'];

    var resultArray = array1.concat(array2, array3);
    console.log("resultArray:",resultArray);
    console.log("原有array1:",array1);
  </script>

reverse() 方法

將一個(gè)數(shù)組的順序取反

<script>
    var array = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
    var arraySplit = array.reverse();
    // 處處 ['G', 'F', 'E', 'D', 'C', 'B', 'A']
    console.log("arraySplit:", arraySplit);
    console.log("array:", array);
</script>

indexOf() 方法

給定一個(gè)數(shù)組元素,搜索下標(biāo),如果元素不存在,則返回-1

<script>
    var array = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
    var index = array.indexOf('C');
    // 輸出索引 2
    console.log("index:", index);
</script>

includes()方法

給定一個(gè)數(shù)組元素,判斷數(shù)組中是否包含此值,返回布爾類型值

<script>
    var array = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
    var exists = array.includes('C');
    // 輸出 true
    console.log("exists:", exists);
</script>

排序

數(shù)組排序,就是將一個(gè)無(wú)序的數(shù)組變成一個(gè)有序數(shù)組, 例如 [2, 1, 3] 排序過后 變成 [1, 2, 3]

數(shù)組自帶排序的方法, 這個(gè)方法就是 sort函數(shù)。

sort 排序就是將所有數(shù)組元素轉(zhuǎn)換成字符串,并按照他們的UTF-16碼元值升序排序

sort 函數(shù)是在原有基礎(chǔ)上做的排序, 所以會(huì)影響到原數(shù)組的順序

基本的使用

<script>
    var array = [9,2,3,1,8,7,6,5,4];
    array.sort();
    console.log("array:", array);
</script>

sort 也可以傳入以 函數(shù)作為參數(shù)(函數(shù)作為重要的知識(shí),我們會(huì)在后面講到)

傳入函數(shù)的作用是影響排序規(guī)則, 排序無(wú)非由兩種 升序([1,2,3] ) 和 降序 ([3, 2, 1])

<script>
    var array = [9,2,3,1,8,7,6,5,4];

    
    // 下面的函數(shù)更加執(zhí)行結(jié)果 如果 大于 0 則 升序排列, 如果 小于 0 , 則降序排列
    // function(a, b){
    //    return b-a;
    //}
    var sortArray = array.sort(function(a, b){
        return b-a;
    });
    console.log("array:", array);
</script>

如果數(shù)組包含空槽(即某些地方?jīng)]有填值被undefined占據(jù)), 排序后所有的空槽都會(huì)被移動(dòng)到數(shù)組尾部

<script>
    var array = [9,2,3,1,8,7,6,5,undefined,4,undefined];
    array.sort();
    // 輸出 [1, 2, 3, 4, 5, 6, 7, 8, 9, undefined, undefined]
    console.log(array);
</script> 

如果既希望排序后的結(jié)果是一個(gè)新數(shù)組,并不影響原來(lái)的數(shù)組,可以使用 toSorted方法, toSorted方法其他的特性和 sort 方法一樣

<script>
    var array = [9,2,3,1,8,7,6,5,4];
    var sortedArray = array.toSorted();
    console.log('sortedArray:', sortedArray);
    console.log('array:', array);
</script>

關(guān)于數(shù)組排序,還有很多相關(guān)的算法,比如冒泡排序, 快速排序, 這些排序算法因?yàn)樾时容^低,在工作中很難應(yīng)用,所以這部分內(nèi)容我們本節(jié)就不涉及了,如果有緣,以后可能會(huì)水一篇

遍歷

數(shù)組遍歷 就是將數(shù)組 從頭到尾循環(huán)一遍

數(shù)組遍歷有很多現(xiàn)實(shí)意義,舉個(gè)例子,遍歷一個(gè)數(shù)值型數(shù)組,找到當(dāng)中的最大值。

<script>
    // 生成一個(gè)隨機(jī)數(shù)組
    var array = [];
    // 生成一個(gè)隨機(jī)數(shù)組
    for(var i = 0 ; i < 10 ; i++) {
        array.push(Math.floor(Math.random(10) * 10));
    }
    console.log(array);

    // 遍歷找到最大值
    var maxValue = null;
    for(var i= 0; i < array.length ; i++) {
        if(maxValue == null || array[i] > maxValue) {
            maxValue = array[i];
        } 
    }
    console.log('最大值為:', maxValue)
  </script>

數(shù)組類型檢測(cè)

如果用 typeof 去檢測(cè)數(shù)組,則返回的結(jié)果是object

實(shí)際工作中,可以用 Array.isArray() 方法來(lái)檢測(cè)一個(gè)變量是否是數(shù)組

<script>
      var array = [12, 3, 3, 3];
      var flag1 = Array.isArray(array);
      var flag2 = typeof array;
			// true object
      console.log(flag1, flag2);

      var array = [];
			// true
      console.log(Array.isArray(array));
    </script>

數(shù)組和字符串轉(zhuǎn)換

一個(gè)字符串可以調(diào)用 split 方法轉(zhuǎn)換成數(shù)組

一個(gè)數(shù)組可以使用 join 方法轉(zhuǎn)換成字符串

字符串轉(zhuǎn)數(shù)組

字符串的 split 函數(shù)傳入 分隔符, 就可以分割一個(gè)字符串為數(shù)組

<script>
    var str = 'ABCDEFG';
    console.log(str.split(''));

    var str1 = 'A-B-C-D-E-F-G';
    console.log(str1.split('-'));
</script

數(shù)組轉(zhuǎn)字符串

數(shù)組的 join 函數(shù)傳入 連接符, 就可以將一個(gè)數(shù)組轉(zhuǎn)換成字符串

<script>

      var array = ['A', 'B', 'C', 'D', "E"];
      console.log(array.join('-'));
      console.log(array.join(''));
      // 默認(rèn)以逗號(hào)分隔
      console.log(array.join());

</script>

二維數(shù)組

以普通數(shù)據(jù)類型作為數(shù)組元素的叫一維數(shù)組,那么以數(shù)組作為元素的就叫做 二維數(shù)組

<script>
      // 以下是一個(gè)二維數(shù)組的定義
      var array = [
          ['A','B', 'C'],
          ['D','E', 'F']
      ];
      console.log(array)
</script>

查看上面代碼的輸出結(jié)果

Untitled 1.png

取值

如上面那個(gè)例子,我們想取出打印出元素’F‘應(yīng)該怎么做?

第一步,我們需要找到 F 元素所在內(nèi)層數(shù)組在外層的數(shù)組的下標(biāo)值, 通過觀察為 1

第二步,我們需要找到 F 元素在內(nèi)層數(shù)組 的下標(biāo)值, 通過觀察為 2

所以打印出 E 元素的代碼如下

<script>
      // 以下是一個(gè)二維數(shù)組的定義
      var array = [
          ['A','B', 'C'],
          ['D','E', 'F']
      ];
      console.log(array)
</script>

遍歷

由數(shù)組定義的例子可以看到,二維數(shù)組就是數(shù)組嵌套數(shù)組的形式

那么,如果我們想把二維數(shù)組最內(nèi)層的元素逐個(gè)遍歷出來(lái), 就需要遍歷兩次,外層數(shù)組遍歷一次,內(nèi)層的數(shù)組也要逐個(gè)遍歷。

<script>
    var array = [
        ['A','B', 'C'],
        ['D','E', 'F']
    ];

    for(var i = 0 ; i < array.length ; i++) {
        for(var j = 0 ; j < array[i].length ; j++) {
            console.log(array[i][j])
        }
    }

</script>

既然有二維數(shù)組,肯定有三維數(shù)組、四維數(shù)組 等等,我們統(tǒng)稱為多維數(shù)組。

事實(shí)上,多維數(shù)組在工作中不太能用的到,既然學(xué)會(huì)了二維數(shù)組,那就等于學(xué)會(huì)了多維數(shù)組。

總結(jié)

此篇水文,我們介紹了如下內(nèi)容, 這里再啰嗦下文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-707981.html

  1. 數(shù)組的定義和取值
  2. 數(shù)組的常用方法
  3. 數(shù)組的遍歷
  4. 數(shù)組的排序
  5. 二維數(shù)組

到了這里,關(guān)于Js基礎(chǔ)-復(fù)雜數(shù)據(jù)類型之?dāng)?shù)組的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-列表類型(增刪改查)

    【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-列表類型(增刪改查)

    視頻講解 列表數(shù)據(jù)類型-增刪改查 列表是由一系列數(shù)據(jù)元素按特定順序排列組成的 ??梢詫?任何類型數(shù)據(jù)元素 加入列表中,其中的數(shù)據(jù)元素之間沒有任何關(guān)系。鑒于列表通常包含多個(gè)數(shù)據(jù)元素,給列表變量指定一個(gè)表示復(fù)數(shù)的名稱是個(gè)不錯(cuò)的選擇。 在Python中, 用方括號(hào)[

    2024年02月07日
    瀏覽(29)
  • 【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-列表類型(排序/長(zhǎng)度/遍歷)

    【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-列表類型(排序/長(zhǎng)度/遍歷)

    在創(chuàng)建的列表中,數(shù)據(jù)元素的排列順序常常是無(wú)法預(yù)測(cè)的。這雖然在大多數(shù)情況下都是不可避免的,但經(jīng)常需要以特定的順序呈現(xiàn)信息。有時(shí)候希望保留列表數(shù)據(jù)元素最初的排列順序,而有時(shí)候又需要調(diào)整排列順序。python提供了很多列表數(shù)據(jù)元素排序的方式,可根據(jù)情況選用

    2024年02月07日
    瀏覽(21)
  • 【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-字典(遍歷)

    【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-字典(遍歷)

    一個(gè)字典可能只包含幾個(gè)鍵值對(duì),也可能包含數(shù)百萬(wàn)個(gè)鍵值對(duì),所以Python支持字典遍歷。字典可用于以各種方式存儲(chǔ)信息,因此有多種遍歷字典的方式:可遍歷字典的所有鍵值對(duì)、鍵或值。 其語(yǔ)法格式: 比如遍歷一個(gè)人的信息,編寫程序如下所示: 這里,我們給鍵起了一個(gè)

    2024年02月08日
    瀏覽(26)
  • 【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-字典(嵌套)

    【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-字典(嵌套)

    有時(shí)候,需要將一系列字典存儲(chǔ)在列表中,或?qū)⒘斜碜鳛橹荡鎯?chǔ)在字典中,這稱為 嵌套 。我們可以在列表中嵌套字典、在字典中嵌套列表、在字典中嵌套字典。 我們可以把一個(gè)人的信息放在字典中,但是多個(gè)人的信息我們無(wú)法放在同一個(gè)字典中,所以就需要字典列表。 其語(yǔ)

    2024年02月08日
    瀏覽(32)
  • 【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-字典(增刪改查)

    【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-字典(增刪改查)

    字典,是另外一種復(fù)雜的數(shù)據(jù)類型,相較于列表,字典可以將相關(guān)信息關(guān)聯(lián)起來(lái)。比如說(shuō)一個(gè)人的信息有名字、年齡、性別等,如果用列表存儲(chǔ)的話,不能表示他們之間是相關(guān)聯(lián)的,而字典可以,字典是一個(gè)或多個(gè)鍵值對(duì)組成 列表的標(biāo)志是[ ], 字典的標(biāo)志是{ } ,其語(yǔ)法格式:

    2024年02月08日
    瀏覽(25)
  • C語(yǔ)言自定義數(shù)據(jù)類型(二)使用結(jié)構(gòu)體數(shù)組

    C語(yǔ)言自定義數(shù)據(jù)類型(二)使用結(jié)構(gòu)體數(shù)組

    一個(gè)結(jié)構(gòu)體變量中可以存放一組有關(guān)聯(lián)的數(shù)據(jù)(如一個(gè)學(xué)生的學(xué)號(hào)、姓名、成績(jī)等數(shù)據(jù))。如果有 10 個(gè)學(xué)生的數(shù)據(jù)需要參加運(yùn)算,顯然應(yīng)該用數(shù)組,這就是結(jié)構(gòu)體數(shù)組。結(jié)構(gòu)體數(shù)組與以前介紹過的數(shù)值型數(shù)組的不同之處在于每個(gè)數(shù)組元素都是一個(gè)結(jié)構(gòu)體類型的數(shù)據(jù),它們都分別

    2024年01月19日
    瀏覽(26)
  • verilog基礎(chǔ):數(shù)據(jù)類型定義

    verilog中的數(shù)據(jù)類型大體可以分成net types和variable types。在verilog中的數(shù)據(jù)表示如下形式: bits\\\'representationvalue 比如說(shuō)4\\\'b0001表示這個(gè)數(shù)據(jù)定義為四位寬,二進(jìn)制類型,除此之外還可以定義為16進(jìn)制4\\\'h1,八進(jìn)制4\\\'01,十進(jìn)制4\\\'d1,除了這些常見數(shù)據(jù)之外,verilog還有兩個(gè)特殊變量:\\\'x

    2024年02月11日
    瀏覽(28)
  • JS基礎(chǔ)-數(shù)據(jù)類型

    JS基礎(chǔ)-數(shù)據(jù)類型

    JS 作為弱類型的編程語(yǔ)言, 在聲明變量時(shí),統(tǒng)一使用 var 、 const 、或者 let 。但是每個(gè)變量都有一個(gè)隱式的數(shù)據(jù)類型。 使用 typeof 可以檢測(cè)數(shù)據(jù)類型。 整形、浮點(diǎn)型在內(nèi)的所有數(shù)字,都是數(shù)字類型。 浮點(diǎn)數(shù)如果整數(shù)部分是0,可以省略。 數(shù)字可以使用科學(xué)計(jì)數(shù)法

    2024年02月10日
    瀏覽(19)
  • JS基礎(chǔ)-數(shù)據(jù)類型轉(zhuǎn)換

    JS基礎(chǔ)-數(shù)據(jù)類型轉(zhuǎn)換

    JS存在不同的數(shù)據(jù)類型, 這就需要一些方法將不同的數(shù)據(jù)類型做轉(zhuǎn)換。 其他類型的值轉(zhuǎn)換成數(shù)字, 這在工作中很常見。 有以下幾種轉(zhuǎn)換方式 Number 函數(shù) parseInt 函數(shù) parseFloat 函數(shù) Number 函數(shù)可以將 其他類型轉(zhuǎn)成 數(shù)字類型,具體示例如下 字符串轉(zhuǎn)數(shù)字 布爾轉(zhuǎn)數(shù)字 undefined 和 nu

    2024年02月09日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包