最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS求Number類型數(shù)組中最大元素方法

 更新時(shí)間:2018年04月08日 08:55:38   作者:snowell  
這篇文章主要介紹了如何用JS求Number類型數(shù)組中最大元素

如何使用JS,在一個(gè)Number類型的數(shù)組里,查找最大(或最?。?shù)呢?

以下介紹四個(gè)方法。

1. 不使用任何庫函數(shù)

代碼如下:

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;
  }
}

解釋:

利用一個(gè)變量result來存儲最大值。遍歷待查找的數(shù)組,如果當(dāng)前遍歷的元素大于result,就把這個(gè)元素賦值給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方法就是通過一個(gè)函數(shù),針對一個(gè)累加器(accumulator)和數(shù)組中的每一個(gè)元素,將一個(gè)數(shù)組最終減少到一個(gè)值。

reduce接受兩個(gè)參數(shù):

第一個(gè)是callback,就是那個(gè)前面提到的那個(gè)函數(shù)。它有四個(gè)參數(shù):

  1. accumulator:累加器,它是上次運(yùn)行callback的結(jié)果。如果提供了initialValue,那么第一次就是initialValue;
  2. currentValue:當(dāng)前遍歷的數(shù)組的元素;
  3. currentIndex:當(dāng)前遍歷的數(shù)組的元素的index,從0開始。如果提供了initialValue,那就從1開始;
  4. array:當(dāng)前應(yīng)用reduce的數(shù)組。

第二個(gè)是initialValue,是一個(gè)初值,作為第一次運(yùn)行callback函數(shù)的第一個(gè)實(shí)參。這個(gè)是可選的。這里要注意一下,如果這個(gè)參數(shù)不提供,并且應(yīng)用在一個(gè)空數(shù)組上,是會報(bào)錯(cuò)的。

那么上面代碼的意思就是,每次遍歷數(shù)組進(jìn)行比較,大的就留下來,即accumulator,并將其用作下一次和數(shù)組元素的比較。最后只留下這一個(gè)值,即最大值。

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解釋稍顯復(fù)雜,不作進(jìn)一步的解釋。

它接受兩個(gè)參數(shù),第一個(gè)是thisArg,第二個(gè)是argsArray。兩個(gè)都是可選的。此處簡單來說,就是使用一個(gè)函數(shù)時(shí),參數(shù)以數(shù)組的方式傳遞進(jìn)去。

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;
  }
}

解釋:

基于上一個(gè)解法的思路,在ES6中,有一個(gè)擴(kuò)展運(yùn)算符(...),可以將一個(gè)數(shù)組中的元素拆出來,組成一個(gè)用逗號分隔的序列。剛好滿足Math.max()函數(shù)的需求。

在給大家介紹一下JS之number、Math和數(shù)組的相關(guān)知識點(diǎn)

1、Number對象。

創(chuàng)建Number對象的方式:

方式1:

var 變量= new Number(數(shù)字)

方式2:

var 變量 = 數(shù)字;

常用的方法:

toString() 把數(shù)字轉(zhuǎn)換成指定進(jìn)制形式的字符串。(輸入數(shù)字幾,就轉(zhuǎn)換為幾, number.toString(2))

toFixed() 指定保留小數(shù)位,而且還帶四舍五入的功能。

2、Math  

Math對象常用的方法:

ceil 向上取整

floor() 向下取整

random() 隨機(jī)數(shù)方法 // 產(chǎn)生的偽隨機(jī)數(shù)介于 0 和 1 之間(含 0,不含 1),

round 四舍五入

3、Array數(shù)組對象:

創(chuàng)建數(shù)組的方式1:

var 變量名 = new Array(); 創(chuàng)建一個(gè)長度為0的數(shù)組。

方式2:

var 變量名= new Array(長度) 創(chuàng)建一個(gè)指定長度的數(shù)組對象。

方式3:

var 變量名 = new Array("元素1","元素2"...); 給數(shù)組指定元素創(chuàng)建數(shù)組 的對象。

方式4:

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

數(shù)組要注意的細(xì)節(jié):

1. 在javascript中數(shù)組的長度是可以發(fā)生變化的。

var arr = new Array(); //創(chuàng)建了一個(gè)長度為0的數(shù)組對象。
arr[100] = 10;
document.write("arr長度:"+arr.length+"<br/>");
var arr2 = new Array("狗娃","狗剩","鐵蛋");
arr2 = ["狗娃","狗剩","鐵蛋","張三"];
document.write("arr2長度:"+arr2.length+"<br/>");

3.1數(shù)字的方法

a、concat把a(bǔ)rr1與arr2的數(shù)組元素組成一個(gè)新的數(shù)組返回?! ?
arr1 = arr1.concat(arr2); 

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

var elements = arr1.join(",");

c、pop :移除數(shù)組中的最后一個(gè)元素并返回該元素。

d、push:將新元素添加到一個(gè)數(shù)組中,并返回?cái)?shù)組的新長度值。

arr1.push("你好");

e、reverse(); 翻轉(zhuǎn)數(shù)組的元素

f、slice指定數(shù)組 的開始索引值與結(jié)束索引值截取數(shù)組的元素,并且返回子數(shù)組。(包頭不包尾)

var subArr = arr1.slice(1,2); 

g、sort排序,排序的時(shí)候一定要傳入排序的方法。(不傳時(shí)默認(rèn)是按照ASCII表排列)

arr1 = [19,1,20,5];
arr1.sort(sortNumber); //排序,排序的時(shí)候一定要傳入排序的方法。
function sortNumber(num1,num2){ 
return num1-num2;
}

h、splice第一個(gè)參數(shù)是開始刪除元素的 索引值, 第二參數(shù)是刪除元素的個(gè)數(shù),往后的數(shù)據(jù)就是插入的元素(也可以不寫)。

arr1.splice(1,1,"張三","李四","王五");

相關(guān)文章

  • js單線程的本質(zhì) Event Loop解析

    js單線程的本質(zhì) Event Loop解析

    這篇文章主要介紹了js單線程的本質(zhì) Event Loop解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • js實(shí)現(xiàn)簡單選項(xiàng)卡制作

    js實(shí)現(xiàn)簡單選項(xiàng)卡制作

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡單選項(xiàng)卡制作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 可拖動可改變大小div的實(shí)現(xiàn)代碼

    可拖動可改變大小div的實(shí)現(xiàn)代碼

    可拖動可改變大小div的實(shí)現(xiàn)代碼,非常不錯(cuò)的應(yīng)用,大家可以參考下。
    2009-08-08
  • 用Fundebug插件記錄網(wǎng)絡(luò)請求異常的方法

    用Fundebug插件記錄網(wǎng)絡(luò)請求異常的方法

    這篇文章主要介紹了用Fundebug插件記錄網(wǎng)絡(luò)請求異常的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • 本窗口將在秒后自動關(guān)閉

    本窗口將在秒后自動關(guān)閉

    本窗口將在秒后自動關(guān)閉...
    2006-07-07
  • Javascript 拖拽的一些簡單的應(yīng)用(逐行分析代碼,讓你輕松了拖拽的原理)

    Javascript 拖拽的一些簡單的應(yīng)用(逐行分析代碼,讓你輕松了拖拽的原理)

    這篇文章主要介紹了Javascript 拖拽的一些簡單的應(yīng)用(逐行分析代碼,讓你輕松了拖拽的原理),需要的朋友可以參考下
    2015-01-01
  • JS如何實(shí)現(xiàn)Base64編碼和解碼(及中文亂碼問題)

    JS如何實(shí)現(xiàn)Base64編碼和解碼(及中文亂碼問題)

    這篇文章主要給大家介紹了關(guān)于JS如何實(shí)現(xiàn)Base64編碼和解碼及中文亂碼問題的相關(guān)資料,Base64編碼是一種常用的將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為文本數(shù)據(jù)的方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 詳解微信小程序調(diào)用支付接口支付

    詳解微信小程序調(diào)用支付接口支付

    這篇文章主要介紹了微信小程序調(diào)用支付接口支付,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • ros::spin() 和 ros::spinOnce()函數(shù)的區(qū)別及詳解

    ros::spin() 和 ros::spinOnce()函數(shù)的區(qū)別及詳解

    這篇文章主要介紹了ros::spin() 和 ros::spinOnce()函數(shù)的區(qū)別及詳解的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感謝興趣的朋友一起看看吧
    2016-10-10
  • postcss安裝和使用示例詳解

    postcss安裝和使用示例詳解

    這篇文章主要介紹了postcss安裝和使用,通過這些深度集成,PostCSS不僅僅是一個(gè)簡單的CSS處理工具,而是一種貫穿整個(gè)前端開發(fā)流程的技術(shù)手段,大大提升了CSS開發(fā)效率和產(chǎn)出質(zhì)量,隨著前端社區(qū)的發(fā)展,PostCSS的功能和應(yīng)用場景也會更加豐富多元,需要的朋友可以參考下
    2024-03-03

最新評論

拉萨市| 定襄县| 平武县| 高州市| 体育| 尼勒克县| 封丘县| 衡山县| 民县| 汶川县| 望城县| 庄浪县| 罗定市| 瑞昌市| 原阳县| 九台市| 南投县| 司法| 都安| 简阳市| 四子王旗| 桑日县| 洛扎县| 吉水县| 读书| 长顺县| 虎林市| 甘洛县| 阳新县| 平舆县| 青海省| 永州市| 清涧县| 准格尔旗| 天峨县| 绍兴县| 五峰| 渝北区| 延寿县| 永顺县| 米林县|