国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
如何使用Reverse方法反轉(zhuǎn)JavaScript中的陣列
如何使用Spread運(yùn)算子反轉(zhuǎn)JavaScript中的陣列
如何使用Slice和Reverse方法反轉(zhuǎn)JavaScript中的陣列
如何在沒有Reverse方法的情況下在JavaScript中反轉(zhuǎn)陣列
首頁 web前端 前端問答 ES6怎麼求數(shù)組反轉(zhuǎn)

ES6怎麼求數(shù)組反轉(zhuǎn)

Oct 26, 2022 pm 06:19 PM
javascript es6 es6數(shù)組

在ES6中,可以利用數(shù)組物件的reverse()方法來實(shí)現(xiàn)數(shù)組反轉(zhuǎn),該方法用於顛倒數(shù)組中元素的順序,將最後一個元素放在第一位,而第一個元素放在最後,語法「array.reverse()」。 reverse()方法會修改原始數(shù)組,如果不想修改需要配合擴(kuò)充運(yùn)算子「...」使用,語法「[...array].reverse()」。

ES6怎麼求數(shù)組反轉(zhuǎn)

本教學(xué)操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。

在工作面試和程式設(shè)計測驗(yàn)中,反轉(zhuǎn)具有特定限制的陣列是最常見的挑戰(zhàn)之一。

在ES6中,可以利用陣列物件的reverse()方法來實(shí)現(xiàn)陣列反轉(zhuǎn)。 reverse()方法可反轉(zhuǎn)數(shù)組元素的順序,第一個元素變成最後一個元素,最後一個元素變成第一個元素。

如何使用Reverse方法反轉(zhuǎn)JavaScript中的陣列

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

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

但請記住,reverse 方法會修改原始陣列:

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

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

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

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

如何使用Spread運(yùn)算子反轉(zhuǎn)JavaScript中的陣列

你可以結(jié)合使用擴(kuò)充運(yùn)算子(Spread)和reverse 方法來反轉(zhuǎn)數(shù)組,而無需更改原始數(shù)組。

首先,透過用方括號[] 括住spread語法,將spread運(yùn)算子傳回的元素放入新陣列中:

[...numbers]

然後,你在陣列上呼叫reverse 方法。這樣,將在新數(shù)組而不是原始數(shù)組上執(zhí)行reverse 方法:

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

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

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

注意spread 方法是ES6語法,當(dāng)你需要支援較舊的瀏覽器或要使用ES5語法時,可以結(jié)合使用slicereverse 方法。讓我們現(xiàn)在來看。

如何使用Slice和Reverse方法反轉(zhuǎn)JavaScript中的陣列

slice 方法用於將所選元素作為新數(shù)組返回,當(dāng)你呼叫不帶任何參數(shù)的方法時,它將傳回一個與原始數(shù)組相同的新數(shù)組(從第一個元素到最後一個元素)。

接下來,你在新返回的陣列上呼叫reverse 方法,這就是為什麼原始陣列不反轉(zhuǎn)的原因:

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

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

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

如何在沒有Reverse方法的情況下在JavaScript中反轉(zhuǎn)陣列

##有時面試會挑戰(zhàn)你對陣列進(jìn)行逆向操作,而不採用

reverse 方法。沒問題!你可以使用 for 迴圈和陣列 push 方法的組合,就像下面的範(fàn)例。

let numbers = [1, 2, 3, 4, 5];
let reversedNumbers = [];

for(let i = numbers.length -1; i >= 0; i--) {
  reversedNumbers.push(numbers[i]);
}

console.log(reversedNumbers);

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

最後,假設(shè)你的任務(wù)是寫自己的反轉(zhuǎn)函數(shù),該函數(shù)需要在不建立副本的情況下反轉(zhuǎn)數(shù)組。乍一看,這似乎很複雜,但是不用擔(dān)心,因?yàn)樗鼘?shí)際上很簡單。

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

ES6怎麼求數(shù)組反轉(zhuǎn)

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

寫函數(shù)

customReverse,並使用array.length - 1 作為變量,同時儲存第一個索引為0 和最後一個索引。

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

接下來,建立一個

while 循環(huán),只要 leftIndex 小於 rightIndex,它就會運(yùn)作。

在此循環(huán)內(nèi),交換

leftIndexrightIndex 的值,你可以將值之一暫時儲存在暫存變數(shù)中:

while (leftIndex < rightIndex) {
  // 交換元素
  let temp = originalArray[leftIndex];
  originalArray[leftIndex] = originalArray[rightIndex];
  originalArray[rightIndex] = temp;
}

最後,將

leftIndex 向上移動,將rightIndex 向下移動,當(dāng)while 迴圈重複時,它將交換倒數(shù)第二個元素,依此類推:

 function customReverse(originalArray) {

  let leftIndex = 0;
  let rightIndex = originalArray.length - 1;

  while (leftIndex < rightIndex) {

    // 用temp變量交換元素
    let temp = originalArray[leftIndex];
    originalArray[leftIndex] = originalArray[rightIndex];
    originalArray[rightIndex] = temp;

    // 將索引移到中間
    leftIndex++;
    rightIndex--;
  }
}

當(dāng)沒有其他要反轉(zhuǎn)的元素時,循環(huán)將立即停止。對於奇數(shù)的陣列

leftIndexrightIndex 的值會相等,所以不用再交換。對於偶數(shù)的陣列 leftIndex 將大於 rightIndex。

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

let myArray = [1, 2, 3, 4, 5];

customReverse(myArray);

console.log(myArray);

// output is [5, 4, 3, 2, 1]
【相關(guān)推薦:

javascript影片教學(xué)、程式設(shè)計影片

以上是ES6怎麼求數(shù)組反轉(zhuǎn)的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

WebSocket與JavaScript:實(shí)現(xiàn)即時監(jiān)控系統(tǒng)的關(guān)鍵技術(shù) WebSocket與JavaScript:實(shí)現(xiàn)即時監(jiān)控系統(tǒng)的關(guān)鍵技術(shù) Dec 17, 2023 pm 05:30 PM

WebSocket與JavaScript:實(shí)現(xiàn)即時監(jiān)控系統(tǒng)的關(guān)鍵技術(shù)引言:隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,即時監(jiān)控系統(tǒng)在各個領(lǐng)域中得到了廣泛的應(yīng)用。而實(shí)現(xiàn)即時監(jiān)控的關(guān)鍵技術(shù)之一就是WebSocket與JavaScript的結(jié)合使用。本文將介紹WebSocket與JavaScript在即時監(jiān)控系統(tǒng)中的應(yīng)用,並給出程式碼範(fàn)例,詳細(xì)解釋其實(shí)作原理。一、WebSocket技

如何使用WebSocket和JavaScript實(shí)現(xiàn)線上語音辨識系統(tǒng) 如何使用WebSocket和JavaScript實(shí)現(xiàn)線上語音辨識系統(tǒng) Dec 17, 2023 pm 02:54 PM

如何使用WebSocket和JavaScript實(shí)現(xiàn)線上語音辨識系統(tǒng)引言:隨著科技的不斷發(fā)展,語音辨識技術(shù)已成為了人工智慧領(lǐng)域的重要組成部分。而基於WebSocket和JavaScript實(shí)現(xiàn)的線上語音辨識系統(tǒng),具備了低延遲、即時性和跨平臺的特點(diǎn),成為了廣泛應(yīng)用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實(shí)現(xiàn)線上語音辨識系

如何利用JavaScript和WebSocket實(shí)現(xiàn)即時線上點(diǎn)餐系統(tǒng) 如何利用JavaScript和WebSocket實(shí)現(xiàn)即時線上點(diǎn)餐系統(tǒng) Dec 17, 2023 pm 12:09 PM

如何利用JavaScript和WebSocket實(shí)現(xiàn)即時線上點(diǎn)餐系統(tǒng)介紹:隨著網(wǎng)路的普及和技術(shù)的進(jìn)步,越來越多的餐廳開始提供線上點(diǎn)餐服務(wù)。為了實(shí)現(xiàn)即時線上點(diǎn)餐系統(tǒng),我們可以利用JavaScript和WebSocket技術(shù)。 WebSocket是一種基於TCP協(xié)定的全雙工通訊協(xié)議,可實(shí)現(xiàn)客戶端與伺服器的即時雙向通訊。在即時線上點(diǎn)餐系統(tǒng)中,當(dāng)使用者選擇菜餚並下訂單

JavaScript與WebSocket:打造高效率的即時天氣預(yù)報系統(tǒng) JavaScript與WebSocket:打造高效率的即時天氣預(yù)報系統(tǒng) Dec 17, 2023 pm 05:13 PM

JavaScript和WebSocket:打造高效的即時天氣預(yù)報系統(tǒng)引言:如今,天氣預(yù)報的準(zhǔn)確性對於日常生活以及決策制定具有重要意義。隨著技術(shù)的發(fā)展,我們可以透過即時獲取天氣數(shù)據(jù)來提供更準(zhǔn)確可靠的天氣預(yù)報。在本文中,我們將學(xué)習(xí)如何使用JavaScript和WebSocket技術(shù),來建立一個高效的即時天氣預(yù)報系統(tǒng)。本文將透過具體的程式碼範(fàn)例來展示實(shí)現(xiàn)的過程。 We

如何使用WebSocket和JavaScript實(shí)現(xiàn)線上預(yù)約系統(tǒng) 如何使用WebSocket和JavaScript實(shí)現(xiàn)線上預(yù)約系統(tǒng) Dec 17, 2023 am 09:39 AM

如何使用WebSocket和JavaScript實(shí)現(xiàn)線上預(yù)約系統(tǒng)在當(dāng)今數(shù)位化的時代,越來越多的業(yè)務(wù)和服務(wù)都需要提供線上預(yù)約功能。而實(shí)現(xiàn)一個高效、即時的線上預(yù)約系統(tǒng)是至關(guān)重要的。本文將介紹如何使用WebSocket和JavaScript來實(shí)作一個線上預(yù)約系統(tǒng),並提供具體的程式碼範(fàn)例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進(jìn)行全雙工

簡易JavaScript教學(xué):取得HTTP狀態(tài)碼的方法 簡易JavaScript教學(xué):取得HTTP狀態(tài)碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學(xué):如何取得HTTP狀態(tài)碼,需要具體程式碼範(fàn)例前言:在Web開發(fā)中,經(jīng)常會涉及到與伺服器進(jìn)行資料互動的場景。在與伺服器進(jìn)行通訊時,我們經(jīng)常需要取得傳回的HTTP狀態(tài)碼來判斷操作是否成功,並根據(jù)不同的狀態(tài)碼來進(jìn)行對應(yīng)的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態(tài)碼,並提供一些實(shí)用的程式碼範(fàn)例。使用XMLHttpRequest

javascript如何使用insertBefore javascript如何使用insertBefore Nov 24, 2023 am 11:56 AM

用法:在JavaScript中,insertBefore()方法用於在DOM樹中插入一個新的節(jié)點(diǎn)。這個方法需要兩個參數(shù):要插入的新節(jié)點(diǎn)和參考節(jié)點(diǎn)(即新節(jié)點(diǎn)將要插入的位置的節(jié)點(diǎn))。

如何在JavaScript中取得HTTP狀態(tài)碼的簡單方法 如何在JavaScript中取得HTTP狀態(tài)碼的簡單方法 Jan 05, 2024 pm 01:37 PM

JavaScript中的HTTP狀態(tài)碼取得方法簡介:在進(jìn)行前端開發(fā)中,我們常常需要處理與後端介面的交互,而HTTP狀態(tài)碼就是其中非常重要的一部分。了解並取得HTTP狀態(tài)碼有助於我們更好地處理介面?zhèn)骰氐馁Y料。本文將介紹使用JavaScript取得HTTP狀態(tài)碼的方法,並提供具體程式碼範(fàn)例。一、什麼是HTTP狀態(tài)碼HTTP狀態(tài)碼是指當(dāng)瀏覽器向伺服器發(fā)起請求時,服務(wù)

See all articles