欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

以下介紹四個方法。

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

解釋:

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

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

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

  1. accumulator:累加器,它是上次運行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ù)組。

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

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

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)一步的解釋。

它接受兩個參數(shù),第一個是thisArg,第二個是argsArray。兩個都是可選的。此處簡單來說,就是使用一個函數(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;
  }
}

解釋:

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

在給大家介紹一下JS之number、Math和數(shù)組的相關(guā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)建一個長度為0的數(shù)組。

方式2:

var 變量名= new Array(長度) 創(chuàng)建一個指定長度的數(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)建了一個長度為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ù)組元素組成一個新的數(shù)組返回?! ?
arr1 = arr1.concat(arr2); 

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

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

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

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

arr1.push("你好");

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

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

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

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

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

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

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

相關(guān)文章

  • js實現(xiàn)簡易垂直滾動條

    js實現(xiàn)簡易垂直滾動條

    本文主要介紹了js實現(xiàn)簡易垂直滾動條的示例代碼,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • JavaScript中join()、splice()、slice()和split()函數(shù)用法示例

    JavaScript中join()、splice()、slice()和split()函數(shù)用法示例

    這篇文章主要介紹了JavaScript中join()、splice()、slice()和split()函數(shù)用法,結(jié)合實例形式較為詳細(xì)的分析了join()、splice()、slice()和split()函數(shù)的功能、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2018-08-08
  • php對mongodb的擴(kuò)展(初識如故)

    php對mongodb的擴(kuò)展(初識如故)

    mongodb的數(shù)據(jù)存儲格式是一種由于MongoDB的文檔結(jié)構(gòu)為BJSON格式(BJSON全稱:Binary JSON),而BJSON格式本身就支持保存二進(jìn)制格式的數(shù)據(jù),因此可以把文件的二進(jìn)制格式的數(shù)據(jù)直接保存到MongoDB的文檔結(jié)構(gòu)中
    2012-11-11
  • Knockout自定義綁定創(chuàng)建方法

    Knockout自定義綁定創(chuàng)建方法

    這篇文章主要介紹了Knockout自定義綁定創(chuàng)建方法的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • uni-app使用uniCloud實現(xiàn)圖形驗證碼(uni-captcha)詳細(xì)過程

    uni-app使用uniCloud實現(xiàn)圖形驗證碼(uni-captcha)詳細(xì)過程

    這篇文章主要給大家介紹了關(guān)于uni-app使用uniCloud實現(xiàn)圖形驗證碼(uni-captcha)的相關(guān)資料,實際開發(fā)工作中在登陸的時候經(jīng)常需要圖形驗證碼,需要的朋友可以參考下
    2023-07-07
  • JQuery中serialize() 序列化

    JQuery中serialize() 序列化

    這篇文章主要介紹了JQuery中serialize() 序列化,十分的細(xì)致全面,推薦給大家,
    2015-03-03
  • JavaScript監(jiān)控埋點的實現(xiàn)與詳細(xì)用法

    JavaScript監(jiān)控埋點的實現(xiàn)與詳細(xì)用法

    埋點(Event Tracking)是用戶行為監(jiān)控的一種技術(shù)手段,通常用于收集用戶在網(wǎng)站或應(yīng)用中的操作數(shù)據(jù),例如點擊、頁面瀏覽、滾動等,本文給大家介紹了JavaScript監(jiān)控埋點的實現(xiàn)與詳細(xì)用法,需要的朋友可以參考下
    2024-10-10
  • Python要求每行輸出5個的示例代碼

    Python要求每行輸出5個的示例代碼

    本文從列表、字符串和數(shù)字三個方面詳細(xì)闡述了Python中要求每行輸出5個的相關(guān)內(nèi)容,并給出了相應(yīng)的代碼示例,在實際開發(fā)中,我們可以根據(jù)具體的需求靈活運用這些方法,以提高程序的輸出效率和可讀性,需要的朋友可以參考下
    2020-05-05
  • JS實現(xiàn)兼容火狐及IE iframe onload屬性的遮罩層隱藏及顯示效果

    JS實現(xiàn)兼容火狐及IE iframe onload屬性的遮罩層隱藏及顯示效果

    這篇文章主要介紹了JS實現(xiàn)兼容火狐及IE iframe onload屬性的遮罩層隱藏及顯示效果,涉及javascript事件響應(yīng)及針對頁面元素屬性的動態(tài)操作相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • 關(guān)于小程序優(yōu)化的一些建議(小結(jié))

    關(guān)于小程序優(yōu)化的一些建議(小結(jié))

    這篇文章主要介紹了關(guān)于小程序優(yōu)化的一些建議(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論