日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
JavaScript數(shù)組反轉教程

 在工作面試和編碼測試中,反轉具有特定限制的數(shù)組是比較常見的挑戰(zhàn)之一。

賈汪網(wǎng)站建設公司創(chuàng)新互聯(lián)建站,賈汪網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為賈汪上千提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務好的賈汪做網(wǎng)站的公司定做!

本教程將向您展示在JavaScript中使用和不使用 reverse 方法來反轉數(shù)組的五種方法,以及可以使用的代碼段。

如何使用Reverse方法反轉JavaScript中的數(shù)組

當需要在JavaScript中反轉數(shù)組時,可以使用 reverse 方法,該方法將最后一個元素放在第一位,而第一個元素放在最后:

 
 
 
 
  1. let numbers = [1, 2, 3, 4, 5]; 
  2. let reversedNumbers = numbers.reverse(); 
  3.  
  4. console.log(reversedNumbers); 
  5. // [5, 4, 3, 2, 1] 

但是請記住,reverse 方法也會修改原始數(shù)組:

 
 
 
 
  1. let numbers = [1, 2, 3, 4, 5]; 
  2. let reversedNumbers = numbers.reverse(); 
  3.  
  4. console.log(reversedNumbers); 
  5. // [5, 4, 3, 2, 1] 
  6.  
  7. console.log(numbers); 
  8. // [5, 4, 3, 2, 1] 

一些編碼挑戰(zhàn)可能希望您保留原始數(shù)組,因此讓我們看一下如何在不更改原始數(shù)組的情況下反轉數(shù)組。

如何使用Spread運算符反轉JavaScript中的數(shù)組

你可以結合使用擴展運算符(Spread)和 reverse 方法來反轉數(shù)組,而無需更改原始數(shù)組。

首先,通過用方括號 [] 括住spread語法,將spread運算符返回的元素放入新數(shù)組中:

 
 
 
 
  1. [...numbers] 

然后,你在數(shù)組上調用 reverse 方法。這樣,將在新數(shù)組而不是原始數(shù)組上執(zhí)行 reverse 方法:

 
 
 
 
  1. let numbers = [1, 2, 3, 4, 5]; 
  2. let reversedNumbers = [...numbers].reverse(); 
  3.  
  4. console.log(reversedNumbers); 
  5. // [5, 4, 3, 2, 1] 
  6.  
  7. console.log(numbers); 
  8. // [1, 2, 3, 4, 5] 

注意:spread 方法是ES6語法,當你需要支持較舊的瀏覽器或要使用ES5語法時,可以結合使用 slice 和 reverse 方法。讓我們現(xiàn)在來看。

如何使用Slice和Reverse方法反轉JavaScript中的數(shù)組

slice 方法用于將所選元素作為新數(shù)組返回,當你調用不帶任何參數(shù)的方法時,它將返回一個與原始數(shù)組相同的新數(shù)組(從第一個元素到最后一個元素)。

接下來,你在新返回的數(shù)組上調用 reverse 方法,這就是為什么原始數(shù)組不反轉的原因:

 
 
 
 
  1. let numbers = [1, 2, 3, 4, 5]; 
  2. let reversedNumbers = numbers.slice().reverse(); 
  3.  
  4. console.log(reversedNumbers); 
  5. // [5, 4, 3, 2, 1] 
  6.  
  7. console.log(numbers); 
  8. // [1, 2, 3, 4, 5] 

如何在沒有Reverse方法的情況下在JavaScript中反轉數(shù)組

有時面試會挑戰(zhàn)你對數(shù)組進行逆向操作,而不采用 reverse 方法。沒問題!你可以使用 for 循環(huán)和數(shù)組 push 方法的組合,就像下面的例子。

 
 
 
 
  1. let numbers = [1, 2, 3, 4, 5]; 
  2. let reversedNumbers = []; 
  3.  
  4. for(let i = numbers.length -1; i >= 0; i--) { 
  5.   reversedNumbers.push(numbers[i]); 
  6.  
  7. console.log(reversedNumbers); 

如何用JS編寫自己的反轉函數(shù)

最后,假設你的任務是編寫自己的反轉函數(shù),該函數(shù)需要在不創(chuàng)建副本的情況下反轉數(shù)組。乍一看,這似乎很復雜,但是不用擔心,因為它實際上很簡單。

在這里你需要做的是交換數(shù)組的第一個和最后一個元素,然后交換第二個和倒數(shù)第二個元素,依此類推,直到交換了所有元素。

讓我們編寫一個函數(shù)來做到這一點。

編寫函數(shù) customReverse,并使用 array.length - 1 作為變量,同時存儲第一個索引為 0 和最后一個索引。

 
 
 
 
  1. function customReverse(originalArray) { 
  2.   let leftIndex = 0; 
  3.   let rightIndex = originalArray.length - 1; 

接下來,創(chuàng)建一個 while 循環(huán),只要 leftIndex 小于 rightIndex,它就會運行。

在此循環(huán)內,交換 leftIndex 和 rightIndex 的值,你可以將值之一臨時存儲在臨時變量中:

 
 
 
 
  1. while (leftIndex < rightIndex) { 
  2.   // 交換元素 
  3.   let temp = originalArray[leftIndex]; 
  4.   originalArray[leftIndex] = originalArray[rightIndex]; 
  5.   originalArray[rightIndex] = temp; 

最后,將 leftIndex 向上移動,將 rightIndex 向下移動,當 while 循環(huán)重復時,它將交換倒數(shù)第二個元素,依此類推:

 
 
 
 
  1. function customReverse(originalArray) { 
  2.  
  3.   let leftIndex = 0; 
  4.   let rightIndex = originalArray.length - 1; 
  5.  
  6.   while (leftIndex < rightIndex) { 
  7.  
  8.     // 用temp變量交換元素 
  9.     let temp = originalArray[leftIndex]; 
  10.     originalArray[leftIndex] = originalArray[rightIndex]; 
  11.     originalArray[rightIndex] = temp; 
  12.  
  13.     // 將索引移到中間 
  14.     leftIndex++; 
  15.     rightIndex--; 
  16.   } 

當沒有其他要反轉的元素時,循環(huán)將立即停止。對于奇數(shù)的數(shù)組 leftIndex 和 rightIndex 的值會相等,所以不用再交換。對于偶數(shù)的數(shù)組 leftIndex 將大于 rightIndex。

你可以測試該功能以查看其是否正常工作,如下所示:

 
 
 
 
  1. let myArray = [1, 2, 3, 4, 5]; 
  2.  
  3. customReverse(myArray); 
  4.  
  5. console.log(myArray); 
  6.  
  7. // output is [5, 4, 3, 2, 1] 

結束

恭喜你!你不僅學會了如何在JavaScript中反轉數(shù)組,還學會了如何編寫自己的反向函數(shù)。


分享題目:JavaScript數(shù)組反轉教程
當前路徑:http://www.5511xx.com/article/dpsdpij.html