這篇文章主要介紹如何用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('The parameter arr is not an array'); 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('The parameter arr is not an array'); return; } }
解釋:
reduce方法就是透過一個函數,針對一個累加器(accumulator)和陣列中的每一個元素,將一個陣列最終減少到一個值。
reduce接受兩個參數:
第一個是callback,就是那個前面提到的那個函數。它有四個參數:
accumulator:累加器,它是上次執行callback的結果。如果提供了initialValue,那麼第一次就是initialValue;
currentValue:目前遍歷的陣列的元素;
currentIndex:目前遍歷的數組的元素的index,從0開始。如果提供了initialValue,那就從1開始;
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('The parameter arr is not an array'); 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('The parameter arr is not an array'); 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,"张三","李四","王五");
上面是我整理給大家的,希望今後對大家有幫助。
相關文章:
#########################
以上是JS求Number類型數組中最大元素方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

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

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1
好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。