首頁 web前端 js教程 JS求Number類型數組中最大元素方法

JS求Number類型數組中最大元素方法

May 26, 2018 pm 01:53 PM
javascript 元素

這篇文章主要介紹如何用JS求Number類型陣列中最大元素

如何使用JS,在一個Number類型的陣列裡,找出最大(或最小)數呢?

以下介紹四個方法。

1. 不使用任何函式庫函數

程式碼如下:

function findMax1 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    for (let i = 0; i < arr.length; i++) {
      result = arr[i] > result ? arr[i] : result;
    }
    
    return result;
  } else {
    console.error(&#39;The parameter arr is not an array&#39;);
    return;
  }
}
登入後複製

解釋:

利用一個變數result來儲存最大值。遍歷待尋找的數組,如果目前遍歷的元素大於result,就把這個元素賦值給result。

2. 利用Array.reduce()

程式碼如下:

function findMax2 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = arr.reduce((a, b) => {
      return a > b ? a : b;
    }, 0);
    
    return result;
  } else {
    console.error(&#39;The parameter arr is not an array&#39;);
    return;
  }
}
登入後複製

解釋:

reduce方法就是透過一個函數,針對一個累加器(accumulator)和陣列中的每一個元素,將一個陣列最終減少到一個值。

reduce接受兩個參數:

第一個是callback,就是那個前面提到的那個函數。它有四個參數:

  1. accumulator:累加器,它是上次執行callback的結果。如果提供了initialValue,那麼第一次就是initialValue;

  2. currentValue:目前遍歷的陣列的元素;

  3. currentIndex:目前遍歷的數組的元素的index,從0開始。如果提供了initialValue,那就從1開始;

  4. array:目前應用reduce的陣列。

第二個是initialValue,是初值,第一次執行callback函數的第一個實參。這個是可選的。這裡要注意一下,如果這個參數不提供,並且應用在空數組上,是會報錯的。

那麼上面程式碼的意思就是,每次遍歷數組進行比較,大的就留下來,即accumulator,並將其用作下一次和數組元素的比較。最後只留下這一個值,即最大值。

3. 利用Apply和Math.max()

#程式碼如下:

function findMax3 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = Math.max.apply(null, arr);
    
    return result;
  } else {
    console.error(&#39;The parameter arr is not an array&#39;);
    return;
  }
}
登入後複製

##解釋:

apply解釋稍顯複雜,不作進一步的解釋。

它接受兩個參數,第一個是thisArg,第二個是argsArray。兩個都是可選的。這裡簡單來說,就是使用一個函數時,參數會以陣列的方式傳遞進去。

4. 只用Math.max()

程式碼如下:

##
function findMax4 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = Math.max(...arr);
    
    return result;
  } else {
    console.error(&#39;The parameter arr is not an array&#39;);
    return;
  }
}
登入後複製

解釋:

基於上一個解法的思路,在ES6中,有一個擴展運算子(...),可以將一個陣列中的元素拆出來,組成一個用逗號分隔的序列。剛好滿足Math.max()函數的需求。

在跟大家介紹JS之number、Math和陣列的相關知識點

#1、Number物件。

建立Number物件的方式:


方式1:


#var 變數= new Number(數字)


方式2:


var 變數= 數字;


常用的方法:


toString() 把數字轉換成指定進位形式的字串。 (輸入數字幾,就轉換為幾, number.toString(2))


toFixed() 指定保留小數位,而且還帶四捨五入的函數。

2、Math  

Math物件常用的方法:

ceil 向上取整


floor() 向下取整


random() 隨機數方法// 產生的偽隨機數介於0 和1 之間(含0,不含1),


round 四捨五入

3、Array陣列物件:

建立陣列的方式1:

var 變數名稱= new Array(); 建立一個長度為0的陣列。

方式2:

var 變數名稱= new Array(長度) 建立一個指定長度的陣列物件。

方式3:

var 變數名稱 = new Array("元素1","元素2"...); 為陣列指定元素建立陣列 的物件。

方式4:

var 變數名稱= ["元素1","元素2"...];


陣列要注意的細節:

1. 在javascript中陣列的長度是可以改變的。

var arr = new Array(); //创建了一个长度为0的数组对象。
arr[100] = 10;
document.write("arr长度:"+arr.length+"<br/>");
var arr2 = new Array("狗娃","狗剩","铁蛋");
arr2 = ["狗娃","狗剩","铁蛋","张三"];
document.write("arr2长度:"+arr2.length+"<br/>");
登入後複製

3.1數字的方法

#
a、concat把arr1与arr2的数组元素组成一个新的数组返回。  
arr1 = arr1.concat(arr2);
登入後複製

b、join使用指定的分隔符把數組中的元素拼裝成一個字串返回。

var elements = arr1.join(",");
登入後複製

c、pop :移除陣列中的最後一個元素並傳回該元素。

d、push:將新元素加入到一個陣列中,並傳回陣列的新長度值。

arr1.push("你好");
登入後複製

e、reverse(); 翻轉數組的元素

f、slice指定數組的開始索引值與結束索引值截取數組的元素,並且傳回子數組。 (包頭不包尾)

var subArr = arr1.slice(1,2);
登入後複製


#g、sort排序,排序的時候一定要傳入排序的方法。 (不傳時預設是依照ASCII表排列)

arr1 = [19,1,20,5];
arr1.sort(sortNumber); //排序,排序的时候一定要传入排序的方法。
function sortNumber(num1,num2){ 
return num1-num2;
}
登入後複製

#h、splice第一個參數是開始刪除元素的索引值, 第二參數是刪除元素的個數,往後的資料就是插入的元素(也可以不寫)。

arr1.splice(1,1,"张三","李四","王五");
登入後複製

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

Ajax取得回應內容長度的方法

Ajax方式實作定期更新頁面某一區塊內容的方法

ajax讀取properties資源檔案資料的方法

#########################

以上是JS求Number類型數組中最大元素方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何使用WebSocket和JavaScript實現線上語音辨識系統 如何使用WebSocket和JavaScript實現線上語音辨識系統 Dec 17, 2023 pm 02:54 PM

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

WebSocket與JavaScript:實現即時監控系統的關鍵技術 WebSocket與JavaScript:實現即時監控系統的關鍵技術 Dec 17, 2023 pm 05:30 PM

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何利用JavaScript和WebSocket實現即時線上點餐系統 如何利用JavaScript和WebSocket實現即時線上點餐系統 Dec 17, 2023 pm 12:09 PM

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

JavaScript與WebSocket:打造高效率的即時天氣預報系統 JavaScript與WebSocket:打造高效率的即時天氣預報系統 Dec 17, 2023 pm 05:13 PM

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

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

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

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

JavaScript中的HTTP狀態碼取得方法簡介:在進行前端開發中,我們常常需要處理與後端介面的交互,而HTTP狀態碼就是其中非常重要的一部分。了解並取得HTTP狀態碼有助於我們更好地處理介面傳回的資料。本文將介紹使用JavaScript取得HTTP狀態碼的方法,並提供具體程式碼範例。一、什麼是HTTP狀態碼HTTP狀態碼是指當瀏覽器向伺服器發起請求時,服務

如何使用WebSocket和JavaScript實現線上協作編輯器 如何使用WebSocket和JavaScript實現線上協作編輯器 Dec 17, 2023 pm 01:37 PM

即時協作編輯器已成為現代web開發的標配,特別是在各種團隊協作、線上文件編輯和任務管理的場景下,基於WebSocket的即時通訊技術可以提高團隊成員之間的溝通效率和協作效果。本文將介紹如何使用WebSocket和JavaScript建立一個簡單的線上協作編輯器,幫助讀者更能理解WebSocket的原理和使用方法。理解WebSocket的基本原理WebSo

JavaScript和WebSocket:打造高效率的即時搜尋引擎 JavaScript和WebSocket:打造高效率的即時搜尋引擎 Dec 17, 2023 pm 10:13 PM

JavaScript和WebSocket:打造高效率的即時搜尋引擎引言:隨著網路的發展,使用者對即時搜尋引擎的要求也越來越高。傳統的搜尋引擎在進行搜尋時,使用者需要點擊搜尋按鈕後才能得到結果,這種方式無法滿足使用者對於即時搜尋結果的需求。因此,採用JavaScript和WebSocket技術來實現即時搜尋引擎成為了一個熱門的話題。本文將詳細介紹使用JavaScri

See all articles