'JavaScript之如何求數組的最大值和最小值'

JavaScript jQuery 文章 愛笑的的小野貓 2019-08-17
"

上次給大家分享了從零事項jQuery的extend,今天跟大家分享下如何求數組的最大值和最小值。

取出數組中的最大值或者最小值是開發中常見的需求,但你能想出幾種方法來實現這個需求呢?

1. Math.max

JavaScript 提供了 Math.max 函數返回一組數中的最大值,用法是:Math.max([value1[,value2, ...]])。

值得注意的是:1)如果有任一參數不能被轉換為數值,則結果為 NaN;2)max 是 Math 的靜態方法,所以應該像這樣使用:Math.max(),而不是作為 Math 實例的方法 (簡單的來說,就是不使用 new);3)如果沒有參數,則結果為 -Infinity (注意是負無窮大)。

而我們需要分析的是:如果任一參數不能被轉換為數值,這就意味著如果參數可以被轉換成數字,就是可以進行比較的,比如:

Math.max(true, 0) // 1
Math.max(true, '2', null) // 2
Math.max(1, undefined) // NaN
Math.max(1, {}) // NaN

如果沒有參數,則結果為 -Infinity,對應的,Math.min 函數,如果沒有參數,則結果為 Infinity,所以:

var min = Math.min();
var max = Math.max();
console.log(min > max);

瞭解了 Math.max 方法,我們以求數組最大值的為例,思考有哪些方法可以實現這個需求。

2. 原始方法

最最原始的方法,莫過於循環遍歷一遍:

"

上次給大家分享了從零事項jQuery的extend,今天跟大家分享下如何求數組的最大值和最小值。

取出數組中的最大值或者最小值是開發中常見的需求,但你能想出幾種方法來實現這個需求呢?

1. Math.max

JavaScript 提供了 Math.max 函數返回一組數中的最大值,用法是:Math.max([value1[,value2, ...]])。

值得注意的是:1)如果有任一參數不能被轉換為數值,則結果為 NaN;2)max 是 Math 的靜態方法,所以應該像這樣使用:Math.max(),而不是作為 Math 實例的方法 (簡單的來說,就是不使用 new);3)如果沒有參數,則結果為 -Infinity (注意是負無窮大)。

而我們需要分析的是:如果任一參數不能被轉換為數值,這就意味著如果參數可以被轉換成數字,就是可以進行比較的,比如:

Math.max(true, 0) // 1
Math.max(true, '2', null) // 2
Math.max(1, undefined) // NaN
Math.max(1, {}) // NaN

如果沒有參數,則結果為 -Infinity,對應的,Math.min 函數,如果沒有參數,則結果為 Infinity,所以:

var min = Math.min();
var max = Math.max();
console.log(min > max);

瞭解了 Math.max 方法,我們以求數組最大值的為例,思考有哪些方法可以實現這個需求。

2. 原始方法

最最原始的方法,莫過於循環遍歷一遍:

JavaScript之如何求數組的最大值和最小值

既然是通過遍歷數組求出一個最終值,那麼我們就可以使用 reduce 方法:

"

上次給大家分享了從零事項jQuery的extend,今天跟大家分享下如何求數組的最大值和最小值。

取出數組中的最大值或者最小值是開發中常見的需求,但你能想出幾種方法來實現這個需求呢?

1. Math.max

JavaScript 提供了 Math.max 函數返回一組數中的最大值,用法是:Math.max([value1[,value2, ...]])。

值得注意的是:1)如果有任一參數不能被轉換為數值,則結果為 NaN;2)max 是 Math 的靜態方法,所以應該像這樣使用:Math.max(),而不是作為 Math 實例的方法 (簡單的來說,就是不使用 new);3)如果沒有參數,則結果為 -Infinity (注意是負無窮大)。

而我們需要分析的是:如果任一參數不能被轉換為數值,這就意味著如果參數可以被轉換成數字,就是可以進行比較的,比如:

Math.max(true, 0) // 1
Math.max(true, '2', null) // 2
Math.max(1, undefined) // NaN
Math.max(1, {}) // NaN

如果沒有參數,則結果為 -Infinity,對應的,Math.min 函數,如果沒有參數,則結果為 Infinity,所以:

var min = Math.min();
var max = Math.max();
console.log(min > max);

瞭解了 Math.max 方法,我們以求數組最大值的為例,思考有哪些方法可以實現這個需求。

2. 原始方法

最最原始的方法,莫過於循環遍歷一遍:

JavaScript之如何求數組的最大值和最小值

既然是通過遍歷數組求出一個最終值,那麼我們就可以使用 reduce 方法:

JavaScript之如何求數組的最大值和最小值

3. 排序

如果我們先對數組進行一次排序,那麼最大值就是最後一個值:

"

上次給大家分享了從零事項jQuery的extend,今天跟大家分享下如何求數組的最大值和最小值。

取出數組中的最大值或者最小值是開發中常見的需求,但你能想出幾種方法來實現這個需求呢?

1. Math.max

JavaScript 提供了 Math.max 函數返回一組數中的最大值,用法是:Math.max([value1[,value2, ...]])。

值得注意的是:1)如果有任一參數不能被轉換為數值,則結果為 NaN;2)max 是 Math 的靜態方法,所以應該像這樣使用:Math.max(),而不是作為 Math 實例的方法 (簡單的來說,就是不使用 new);3)如果沒有參數,則結果為 -Infinity (注意是負無窮大)。

而我們需要分析的是:如果任一參數不能被轉換為數值,這就意味著如果參數可以被轉換成數字,就是可以進行比較的,比如:

Math.max(true, 0) // 1
Math.max(true, '2', null) // 2
Math.max(1, undefined) // NaN
Math.max(1, {}) // NaN

如果沒有參數,則結果為 -Infinity,對應的,Math.min 函數,如果沒有參數,則結果為 Infinity,所以:

var min = Math.min();
var max = Math.max();
console.log(min > max);

瞭解了 Math.max 方法,我們以求數組最大值的為例,思考有哪些方法可以實現這個需求。

2. 原始方法

最最原始的方法,莫過於循環遍歷一遍:

JavaScript之如何求數組的最大值和最小值

既然是通過遍歷數組求出一個最終值,那麼我們就可以使用 reduce 方法:

JavaScript之如何求數組的最大值和最小值

3. 排序

如果我們先對數組進行一次排序,那麼最大值就是最後一個值:

JavaScript之如何求數組的最大值和最小值

Math.max 支持傳多個參數來進行比較,那麼我們如何將一個數組轉換成參數傳進 Math.max 函數呢?eval 便是一種:

"

上次給大家分享了從零事項jQuery的extend,今天跟大家分享下如何求數組的最大值和最小值。

取出數組中的最大值或者最小值是開發中常見的需求,但你能想出幾種方法來實現這個需求呢?

1. Math.max

JavaScript 提供了 Math.max 函數返回一組數中的最大值,用法是:Math.max([value1[,value2, ...]])。

值得注意的是:1)如果有任一參數不能被轉換為數值,則結果為 NaN;2)max 是 Math 的靜態方法,所以應該像這樣使用:Math.max(),而不是作為 Math 實例的方法 (簡單的來說,就是不使用 new);3)如果沒有參數,則結果為 -Infinity (注意是負無窮大)。

而我們需要分析的是:如果任一參數不能被轉換為數值,這就意味著如果參數可以被轉換成數字,就是可以進行比較的,比如:

Math.max(true, 0) // 1
Math.max(true, '2', null) // 2
Math.max(1, undefined) // NaN
Math.max(1, {}) // NaN

如果沒有參數,則結果為 -Infinity,對應的,Math.min 函數,如果沒有參數,則結果為 Infinity,所以:

var min = Math.min();
var max = Math.max();
console.log(min > max);

瞭解了 Math.max 方法,我們以求數組最大值的為例,思考有哪些方法可以實現這個需求。

2. 原始方法

最最原始的方法,莫過於循環遍歷一遍:

JavaScript之如何求數組的最大值和最小值

既然是通過遍歷數組求出一個最終值,那麼我們就可以使用 reduce 方法:

JavaScript之如何求數組的最大值和最小值

3. 排序

如果我們先對數組進行一次排序,那麼最大值就是最後一個值:

JavaScript之如何求數組的最大值和最小值

Math.max 支持傳多個參數來進行比較,那麼我們如何將一個數組轉換成參數傳進 Math.max 函數呢?eval 便是一種:

JavaScript之如何求數組的最大值和最小值

使用 apply 是另一種:

"

上次給大家分享了從零事項jQuery的extend,今天跟大家分享下如何求數組的最大值和最小值。

取出數組中的最大值或者最小值是開發中常見的需求,但你能想出幾種方法來實現這個需求呢?

1. Math.max

JavaScript 提供了 Math.max 函數返回一組數中的最大值,用法是:Math.max([value1[,value2, ...]])。

值得注意的是:1)如果有任一參數不能被轉換為數值,則結果為 NaN;2)max 是 Math 的靜態方法,所以應該像這樣使用:Math.max(),而不是作為 Math 實例的方法 (簡單的來說,就是不使用 new);3)如果沒有參數,則結果為 -Infinity (注意是負無窮大)。

而我們需要分析的是:如果任一參數不能被轉換為數值,這就意味著如果參數可以被轉換成數字,就是可以進行比較的,比如:

Math.max(true, 0) // 1
Math.max(true, '2', null) // 2
Math.max(1, undefined) // NaN
Math.max(1, {}) // NaN

如果沒有參數,則結果為 -Infinity,對應的,Math.min 函數,如果沒有參數,則結果為 Infinity,所以:

var min = Math.min();
var max = Math.max();
console.log(min > max);

瞭解了 Math.max 方法,我們以求數組最大值的為例,思考有哪些方法可以實現這個需求。

2. 原始方法

最最原始的方法,莫過於循環遍歷一遍:

JavaScript之如何求數組的最大值和最小值

既然是通過遍歷數組求出一個最終值,那麼我們就可以使用 reduce 方法:

JavaScript之如何求數組的最大值和最小值

3. 排序

如果我們先對數組進行一次排序,那麼最大值就是最後一個值:

JavaScript之如何求數組的最大值和最小值

Math.max 支持傳多個參數來進行比較,那麼我們如何將一個數組轉換成參數傳進 Math.max 函數呢?eval 便是一種:

JavaScript之如何求數組的最大值和最小值

使用 apply 是另一種:

JavaScript之如何求數組的最大值和最小值

別忘了還有 ES6 的擴展運算符:

"

上次給大家分享了從零事項jQuery的extend,今天跟大家分享下如何求數組的最大值和最小值。

取出數組中的最大值或者最小值是開發中常見的需求,但你能想出幾種方法來實現這個需求呢?

1. Math.max

JavaScript 提供了 Math.max 函數返回一組數中的最大值,用法是:Math.max([value1[,value2, ...]])。

值得注意的是:1)如果有任一參數不能被轉換為數值,則結果為 NaN;2)max 是 Math 的靜態方法,所以應該像這樣使用:Math.max(),而不是作為 Math 實例的方法 (簡單的來說,就是不使用 new);3)如果沒有參數,則結果為 -Infinity (注意是負無窮大)。

而我們需要分析的是:如果任一參數不能被轉換為數值,這就意味著如果參數可以被轉換成數字,就是可以進行比較的,比如:

Math.max(true, 0) // 1
Math.max(true, '2', null) // 2
Math.max(1, undefined) // NaN
Math.max(1, {}) // NaN

如果沒有參數,則結果為 -Infinity,對應的,Math.min 函數,如果沒有參數,則結果為 Infinity,所以:

var min = Math.min();
var max = Math.max();
console.log(min > max);

瞭解了 Math.max 方法,我們以求數組最大值的為例,思考有哪些方法可以實現這個需求。

2. 原始方法

最最原始的方法,莫過於循環遍歷一遍:

JavaScript之如何求數組的最大值和最小值

既然是通過遍歷數組求出一個最終值,那麼我們就可以使用 reduce 方法:

JavaScript之如何求數組的最大值和最小值

3. 排序

如果我們先對數組進行一次排序,那麼最大值就是最後一個值:

JavaScript之如何求數組的最大值和最小值

Math.max 支持傳多個參數來進行比較,那麼我們如何將一個數組轉換成參數傳進 Math.max 函數呢?eval 便是一種:

JavaScript之如何求數組的最大值和最小值

使用 apply 是另一種:

JavaScript之如何求數組的最大值和最小值

別忘了還有 ES6 的擴展運算符:

JavaScript之如何求數組的最大值和最小值

學習相關推薦(編程必備輔助):

①:搜索關注公眾號“只會寫BUG”,分享更多幹貨知識,資訊,教程等

②:海量編程類資料零基礎到高級亟待領取!!!

如果覺得對你有一丟丟幫助,麻煩動動你的小手指【關注】一下上面的公眾號吧,或者【轉發】讓更多人看到該文章。大家也可積極後臺給我留言,多多交流,共同進步。

"

相關推薦

推薦中...