整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          深入理解 JavaScript 數組方法:從零實現

          深入理解 JavaScript 數組方法:從零實現 reverse 方法

          家好,很高興又見面了,我是姜茶的編程筆記,我們一起學習前端相關領域技術,共同進步,也歡迎大家關注、點贊、收藏、轉發,您的支持是我不斷創作的動力

          在 JavaScript 中,Array.prototype.reverse 方法用于反轉數組中元素的順序。為了幫助你更好地理解這個方法的內部機制,我們將從零開始實現一個自定義的 reverse 方法,并逐步解析其實現步驟。

          手搓 reverse 方法

          reverse 方法將數組中元素的順序從前到后反轉。以下是我們自定義實現的 reverse 方法的代碼:

          Array.prototype.myReverse=function() {
            // 將傳入的數組轉換為對象
            if (this==null) {
              throw new TypeError('Array.prototype.myReverse called on null or undefined');
            }
          
            const O=Object(this);
            const len=O.length >>> 0;
            let middle=Math.floor(len / 2);
            let lower=0;
            let upper=len - 1;
          
            while (lower < middle) {
              // 獲取當前元素
              const lowerValue=O[lower];
              const upperValue=O[upper];
          
              // 交換元素
              O[lower]=upperValue;
              O[upper]=lowerValue;
          
              // 更新索引
              lower++;
              upper--;
            }
          
            return O;
          };
          

          解析實現步驟

          1. 檢查數組是否為 nullundefined

          確保 this 不為空:

          if (this==null) {
            throw new TypeError('Array.prototype.myReverse called on null or undefined');
          }
          

          2. 將 this 轉換為對象,并獲取數組長度

          this 轉換為對象并獲取數組長度:

          const O=Object(this);
          const len=O.length >>> 0;
          

          3. 初始化左右指針

          設置左右指針 lowerupper,以及中間點 middle

          let middle=Math.floor(len / 2);
          let lower=0;
          let upper=len - 1;
          

          4. 交換元素

          使用 while 循環交換數組中 lowerupper 指針指向的元素,直到 lower 指針不再小于 middle

          while (lower < middle) {
            const lowerValue=O[lower];
            const upperValue=O[upper];
          
            O[lower]=upperValue;
            O[upper]=lowerValue;
          
            lower++;
            upper--;
          }
          

          5. 返回反轉后的數組

          返回反轉后的數組:

          return O;
          

          示例使用

          下面是一個示例,展示如何使用自定義的 myReverse 方法:

          const arr=[1, 2, 3, 4, 5];
          const reversedArr=arr.myReverse();
          
          console.log(reversedArr); // 輸出 [5, 4, 3, 2, 1]
          

          在這個示例中,我們使用 myReverse 方法反轉了數組元素的順序。結果返回 [5, 4, 3, 2, 1],這與原生 reverse 方法的行為一致。

          實用小技巧:反轉數組中的字符串

          你可以使用 reverse 方法輕松地反轉數組中的字符串。例如,反轉數組中的每個字符串元素:

          const words=['hello', 'world', 'javascript'];
          const reversedWords=words.map(word=> word.split('').reverse().join(''));
          
          console.log(reversedWords); // 輸出 ['olleh', 'dlrow', 'tpircsavaj']
          

          通過這種方式,我們可以反轉數組中的每個字符串,簡化字符串處理過程。

          最后

          通過實現自定義的 reverse 方法,我們深入理解了 JavaScript 中數組的操作方式。相信你也可以更好地掌握 reverse 方法的內部機制,并提升你的 JavaScript 編程技巧。如果你有任何問題或建議,歡迎在評論區留言交流!祝你編程愉快!

          TML5聲明與編碼設置

          HTML5的DOCTYPE聲明

          <!DOCTYPE html>

          語言的聲明方式

          <html lang="zh-CN">

          lang屬性設置為zh-CN,表示文件內容使用簡體中文

          網頁編碼的聲明

          <meta charset="GB2312">

          <meta charset="UTF-8">



          HTML5編號列表新增的屬性

          <ol type="i" start="4"></ol>

          type 設置值有5種

          1 默認值。數字有序列表。(1、2、3、4)

          a 按字母順序排列的有序列表,小寫。(a、b、c、d)

          A 按字母順序排列的有序列表,大寫。(A、B、C、D)

          i 羅馬字母,小寫。(i, ii, iii, iv)

          I 羅馬字母,大寫。(I, II, III, IV)

          HTML5新增的屬性

          start 設定編號的起始值。默認值:start=1

          reversed 反向排序,數字改為由大到小(IE9不支持)。設定值reversed


          HTML5與HTML4的差異

          1.語法簡化

          HTML,XHTML的DOCTYPE,html,meta,script等標記,在HTML5中有大同謀的簡化;

          2.統一網頁內嵌影音和語法

          以前我們在網頁中播放影音時,需要使用Active或Plug-in的方式來完成;

          3.新增<header>,<foot>,<section>,<article>等語義標記

          4.HTML5廢除了一些舊的標記

          HTML5中已經去除了<font>,<big>,<u>等.

          5.全新的表單設計

          對于網頁程序設計者來說,表彰是最常用的功能,在這方面,HTML5做了很大的更改,不但新增了幾項新的標記,原來的<form>標記也增加了許多屬性;

          6.利用<canvas>標記繪制圖形

          HTML5新增了具有繪圖功能的<canvas>標記,利用它可以搭配Javascript語法在網頁上畫出線條和圖形;

          7.提供API開發網頁應用程序

          為了讓網頁程序設計者開發網頁設計應用程序,HTML5提供了多種API供設計者使用,例如Web SQL Database讓設計者可以脫機訪問客戶端的數據庫.



          量化評分網站:http://html5test.com HTML5一共555個新特性, 每個小點算一個, 不分權重。

          https://caniuse.com/

          自哥倫比亞大學的一組研究人員與邁阿密大學米勒醫學院的一名同事合作,發現了人類頭發因壓力而變白、在壓力消除后又恢復自然顏色的證據。

          這篇論文于5月19日發表在預印版服務器bioRxiv上,題目為“Human Hair Graying is Naturally Reversible and Linked to Stress”,人的頭發變白是自然可逆的,并與壓力有關。

          多年來,傳統觀點認為,經歷壓力事件會導致頭發變白,比如,歷史上有伍子胥遭遇多番變故一夜白頭,武俠小說中有練霓裳被心愛之人刺了一劍,悲痛之下一夜白頭,成了白發魔女,西方則有斷頭王后瑪麗·安托瓦內特。

          一直現在,人們都認為頭發變白是不可逆轉的。但在最近的這項新研究中,研究人員發現有證據表明,一旦壓力事件結束,與壓力相關的灰白頭發就會恢復自然顏色。

          研究人員正在研究黑色素和某些蛋白質在頭發自然顏色形成中的作用。他們讓14名志愿者拔去他們頭上的毛發和身體其他部位的毛發。

          研究人員收集了400個頭發樣本,并用一種新的成像技術檢測頭發不同部位的色素水平進行分析。他們發現,一些毛發的頂端是灰色的,而不是根部。

          頭發從根部長出來,因此,研究人員的這一發現表明,頭發在某一時刻變白了,之后又恢復了自然顏色的生長。在得到這一發現之后,研究人員聯系了同樣的14名志愿者,讓他們回來回答一些問題。

          由于頭發以一定的速度生長,研究人員能夠計算出一個人的頭發開始變白的時間,以及頭發恢復自然顏色的時間。他們問志愿者在頭發變白的時候或前后是否經歷過壓力事件,并找到了幾個相匹配的事件。

          他們還發現,有一個人的頭發在度假時恢復了自然顏色。研究人員表示,他們的研究結果表明,壓力確實會導致頭發變白,消除壓力因素可以讓頭發恢復自然的顏色。他們指出,這種逆轉似乎只適用于因壓力而變白的頭發,而且只有在頭發變白后不久才會發生。

          今年1月,哈佛大學的一項研究則證明了壓力是如何隨著時間的推移加速頭發變白的過程。干細胞生物學家Ya-Chieh Hsu發現,壓力會導致參與“戰斗或逃跑”反應的神經釋放出一種激素,這種激素會清除用來制造發色素的干細胞。

          由于壓力被認為是加速衰老的一種形式,這一發現為減緩甚至停止與年齡有關的正常衰老的治療帶來了希望。更重要的是,它可以揭示衰老是如何耗盡全身的干細胞的,或許還能為抗衰老治療指明方向。

          哈佛大學的研究小組通過一系列實驗發現了壓力對小鼠毛色的影響。在接下來的幾天里,這些動物一直處于緊張狀態,周一至周五每天被限制四個小時,或者是潮濕的被褥、快速更換照明設備和傾斜籠子。

          起初,科學家們懷疑壓力會引發免疫系統對頭發色素細胞的攻擊,但當他們發現沒有免疫細胞的小鼠在經歷了幾次壓力后仍然會變白時,就排除了這種可能性。接下來他們研究了皮質醇,一種對壓力做出反應的荷爾蒙。這被證明是另一個死胡同:沒有皮質醇的小鼠仍然長出了白頭發。

          研究人員最終在構成交感神經系統的一組神經中找到了罪魁禍首。作為“戰斗或逃跑”反應的一部分,準備身體行動的神經進入皮膚的毛囊,并在這里造成傷害。

          毛囊中有一個凸起,是干細胞的聚集地。當一根新頭發形成時,其中一些干細胞就會轉變成色素生成細胞,也就是所謂的黑色素細胞。頭發的顏色取決于黑色素細胞產生的吸收光線的黑色素化合物的混合。

          試驗表明,壓力會導致交感神經系統將一種叫做去甲腎上腺素的荷爾蒙泵入毛囊。去甲腎上腺素的突然分泌有一種特別的效果。這種激素能將大量的干細胞轉化為黑素細胞,但它們一生成就開始從卵泡中游離并分解。下一次,當毛囊想要長出一根頭發時,幾乎沒有干細胞可以產生新的色素細胞了。所以,頭發就變白了。

          此外,壓力不僅致使頭發變白,還與三種類型的脫發有關。第一種是休止期脫發。在休止期,顯著的壓力將大量的毛囊推入靜止期。幾個月之內,只是簡單地梳頭或洗頭,頭發就會突然脫落。

          第二種是拔毛發癖。拔毛癖是一種無法抗拒的沖動,會讓人情不自禁地從頭皮、眉毛或身體其他部位把毛發拔出來。揪頭發可以是一種處理負面或不舒服感覺的方法,比如壓力、緊張、孤獨、無聊或挫折。

          第三種是斑禿。許多因素被認為是導致斑禿的原因,可能包括嚴重的壓力。斑禿時,身體的免疫系統會攻擊毛囊,導致脫發。

          與壓力讓頭發變白,一旦壓力消失頭發顏色又會長回來一樣,壓力和脫發也不一定是永久性的。如果你能控制住自己的壓力,你的頭發可能會重新長出來。

          編譯/前瞻經濟學人APP資訊組

          原文來源:

          https://medicalxpress.com/news/2020-06-hair-greying-due-stress-reversed.html

          https://www.theguardian.com/science/2020/jan/22/stress-speeds-up-hair-greying-process-science-confirms

          https://www.biorxiv.org/content/10.1101/2020.05.18.101964v1


          主站蜘蛛池模板: 福利一区二区在线| 无码乱人伦一区二区亚洲| 久久91精品国产一区二区| 国产成人久久一区二区不卡三区 | 在线观看一区二区三区视频| 中文字幕一区二区三区永久| 国产在线一区视频| 精品国产鲁一鲁一区二区| 中文字幕无码一区二区三区本日| 精品欧美一区二区在线观看| 一区二区在线观看视频| 国精产品一区一区三区免费视频| 日韩美女在线观看一区| 高清精品一区二区三区一区| 久久91精品国产一区二区| 亚洲人成网站18禁止一区| 国产成人av一区二区三区在线观看| 一区二区三区四区视频| 国产精品高清一区二区三区| 国产精品一区三区| 一区二区三区免费视频播放器| 国产伦精品一区二区三区不卡 | 中文字幕一区在线观看| 精品一区二区三区在线视频观看| 日本国产一区二区三区在线观看 | 成人一区二区三区视频在线观看| 日韩人妻一区二区三区免费| 精品亚洲一区二区| 国产成人无码AV一区二区| 精品日本一区二区三区在线观看| 国产熟女一区二区三区五月婷| 日本一区二区三区免费高清| 亚洲日本va一区二区三区| 久久久久人妻精品一区| 麻豆AV一区二区三区| 麻豆AV一区二区三区久久| 久久久av波多野一区二区| 日韩内射美女人妻一区二区三区 | 国产成人久久一区二区三区 | 麻豆va一区二区三区久久浪| 国产精品亚洲一区二区麻豆|