<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          分享 5 個(gè) JavaScript 中 Slice() 的用法

          共 1988字,需瀏覽 4分鐘

           ·

          2021-11-27 12:06


          英文 | https://betterprogramming.pub/5-use-cases-for-slice-in-javascript-13462f2e177f
          翻譯 | 楊小愛(ài)
          slice() 方法將數(shù)組部分的副本返回到新的數(shù)組對(duì)象中。這個(gè)對(duì)象是從頭到尾選擇的。請(qǐng)注意,它不會(huì)修改原始數(shù)組。
          此外,如果向其中一個(gè)數(shù)組添加新元素,則另一個(gè)數(shù)組不會(huì)受到影響。
          參數(shù)是什么?
          slice() 方法的參數(shù)是開始和結(jié)束索引。
          開始
          它是一個(gè)從零開始的索引,用于開始復(fù)制數(shù)組的一部分。如果未定義,則默認(rèn)值為 0。如果 start 大于數(shù)組的索引范圍, slice() 方法將返回一個(gè)空數(shù)組。
          此外,首先,您還可以使用負(fù)索引。slice(-1) 提取數(shù)組的最后一個(gè)元素。它類似于 Python。
          結(jié)尾
          該參數(shù)是可選的。如果你的 slice() 函數(shù)中只有一個(gè)參數(shù),那就是 start。如果省略, slice() 方法從序列的末尾提取。
          如果它大于序列的長(zhǎng)度,slice 一直提取到序列的末尾,只是在它被省略的情況下。
          它是結(jié)束提取之前的索引。它不包括在內(nèi)。因此,索引的最后一個(gè)元素不包含在數(shù)組的副本中。例如, slice(1,3) 提取第二個(gè)和第三個(gè)元素。
          y = [1, 2, 3, 4, 5, 6]y.slice(2, -2) // will return [3, 4]
          這意味著 y 會(huì)將數(shù)組從索引 2 切片到索引 -2 獨(dú)占。
          1、復(fù)制一個(gè)數(shù)組
          第一個(gè)功能是 slice() 函數(shù)的基本功能。沒(méi)有參數(shù)的數(shù)組復(fù)制原始數(shù)組。有時(shí),您可能想要更新數(shù)組中的某些元素。
          但是,您可能希望保護(hù)原始數(shù)組中的元素。因此,您可以創(chuàng)建原始數(shù)組的淺表副本。
          const midtermGrades = updatedGrades.slice();
          2、構(gòu)造一個(gè)以n開頭的子數(shù)組
          slice() 方法的第二個(gè)用例是復(fù)制以 n 開頭的子數(shù)組。例如,您正在分析從考試中獲得 80 分或更高分的學(xué)生。您發(fā)現(xiàn)學(xué)生的索引從 10 開始。因此,您可以復(fù)制成功學(xué)生的索引。
          const successfulStudents = allStudents.slice(10);
          你也可以得到不滿意的學(xué)生。
          const unsatisfactoryStudents = allStudents.slice(-10);
          3、將類數(shù)組對(duì)象轉(zhuǎn)換為數(shù)組
          您可以使用 slice() 方法將看起來(lái)像數(shù)組的對(duì)象轉(zhuǎn)換為數(shù)組。例如,您可以按如下方式創(chuàng)建函數(shù)。
          function TransformToArray(){ return Array.prototype.slice.call(arguments);}
          var newArray = TransformToArray("1", "2", "3", "4");console.log(newArray); // ["1", "2", "3", "4"];
          4、 將一個(gè) NodeList 轉(zhuǎn)換成一個(gè)數(shù)組
          NodeList 對(duì)象是從文檔中提取的節(jié)點(diǎn)集合。您可以使用 querySelectorAll() 方法返回一個(gè) NodeList 對(duì)象。
          例如,您可以選擇 HTML 文檔中的所有 <p> 節(jié)點(diǎn)。使用 slice(),您可以將您選擇的 NodeList 轉(zhuǎn)換為數(shù)組。
          var p = document.querySelectorAll(‘p’);var pNodes = Array.prototype.slice.call(p);
          5、替換字符串中的特定索引
          您可以使用 slice() 函數(shù)創(chuàng)建替換函數(shù)。
          String.prototype.append = function (index,value) { return this.slice(0,index) + value + this.slice(index);};
          var s = "Happy year";alert(s.append(6,"new "));
          結(jié)論
          學(xué)習(xí) JavaScript 內(nèi)置函數(shù)的用例可以幫助您提高編碼技能。您可以在需要時(shí)使用您的知識(shí)。您可以優(yōu)雅地實(shí)現(xiàn)功能。
          slice() 也是一個(gè)有用的內(nèi)置函數(shù)。如果您知道如何使用它,則可以在遇到需要使用它的問(wèn)題時(shí)使用它。您可以使用 slice() 輕松獲取數(shù)組的副本。
          總結(jié)一下,本文中 slice() 的用例如下:
          • 復(fù)制數(shù)組

          • 構(gòu)造一個(gè)從 n 開始的子數(shù)組

          • 將類數(shù)組對(duì)象轉(zhuǎn)換為數(shù)組

          • 將 NodeList 轉(zhuǎn)換為數(shù)組

          • 替換字符串中的特定索引


          學(xué)習(xí)更多技能
          請(qǐng)點(diǎn)擊下方公眾號(hào)

          瀏覽 37
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  狼友新网址| 国产成人三级 | 日韩精品小电影 | 成人激情婷婷 | 就爱添逼视频免费网站 |