ตอนนี้ผู้คนจำนวนมากขึ้นใช้ค่าสูงสุดและต่ำสุดในอาร์เรย์ดังนั้นฉันจึงได้รวบรวมวิธีการให้ทุกคนใช้ รหัสมีดังนี้ หากคุณมีคำถามใด ๆ โปรดติดต่อฉัน มาเรียนรู้และก้าวหน้าร่วมกัน
ลองดูตัวอย่างต่อไปนี้:
var numreg = /^-? [0-9 เหมือนกัน+.? [0-9-9 เหมือนกัน*/array.prototype.min = function () {return this.reduce (ฟังก์ชั่น (prevalue, curvalue, ดัชนี, อาร์เรย์) {ถ้า (numreg.test (pervalue) && numreg.test (curvalue) numreg.test (prevalue)) {return curvalue; prevalue;ตัวอย่างที่ 2:
ฟังก์ชั่น getMaximin (arr, maximin) {ถ้า (maximin == "max") {return math.max.apply (คณิตศาสตร์, arr); } อื่นถ้า (maximin == "min") {return math.min.apply (คณิตศาสตร์, arr); }} var a = [3,2,4,2,10] var b = [12,4,45,786,9,78] การแจ้งเตือน ("amax:" + getmaximin (a, "max") + "--- Amin:" + getMaximin (a, "min") + "--- bmax: getMaximin (b, "min")) // amax: 10 --- amin: 2 --- bmax: 786 --- bmin: 4 ฟังก์ชั่น getMaximin (arr, maximin) {ถ้า (maximin == "สูงสุด") {return math.max.apply (คณิตศาสตร์, arr); } อื่นถ้า (maximin == "min") {return math.min.apply (คณิตศาสตร์, arr); }} var a = [3,2,4,2,10] var b = [12,4,45,786,9,78] การแจ้งเตือน ("amax:" + getmaximin (a, "max") + "--- Amin:" + getMaximin (a, "min") + "--- bmax: getMaximin (b, "min")) // amax: 10 --- อามิน: 2 --- bmax: 786 --- bmin: 4ลองดูอีกสองวิธี
วิธีที่ 1:
// ค่าต่ำสุด array.prototype.min = function () {var min = this [0]; var len = this.length; สำหรับ (var i = 1; i <len; i ++) {ถ้า (นี่ [i] <นาที) {min = this [i]; }} return min;} // ค่าสูงสุด array.prototype.max = function () {var max = this [0]; var len = this.length; สำหรับ (var i = 1; i <len; i ++) {ถ้า (นี้ [i]> max) {max = this [i]; }} ส่งคืนสูงสุด;}หากคุณกำลังแนะนำไลบรารีคลาสสำหรับการพัฒนาและกลัวว่าไลบรารีคลาสจะใช้วิธีต้นแบบด้วยชื่อเดียวกันคุณสามารถตัดสินชื่อซ้ำก่อนที่จะสร้างฟังก์ชั่น:
if (typeof array.prototype ['max'] == 'undefined') {array.prototype.max = function () {... ... }}วิธีที่ 2:
ผลลัพธ์สามารถรับได้อย่างรวดเร็วโดยใช้วิธี Math.max และ Math.min ใช้สามารถอนุญาตวิธีการระบุวัตถุการโทรและพารามิเตอร์ที่เข้ามาและพารามิเตอร์ที่เข้ามาจะถูกจัดระเบียบในอาร์เรย์ ขณะนี้มีวิธีการที่เรียกว่า math.max วัตถุการโทรคือคณิตศาสตร์และมีพารามิเตอร์หลายตัว
array.max = function (array) {return math.max.apply (คณิตศาสตร์, อาร์เรย์);}; array.min = ฟังก์ชั่น (อาร์เรย์) {return math.min.apply (คณิตศาสตร์, อาร์เรย์);};อย่างไรก็ตาม John Resig เป็นวิธีการคงที่ที่ทำให้พวกเขาเป็นวัตถุคณิตศาสตร์และไม่สามารถใช้การโทรที่ถูกล่ามโซ่ซึ่งอาจารย์ชอบมากที่สุด แต่วิธีนี้สามารถปรับปรุงได้มากขึ้น อย่าลืมว่าวัตถุคณิตศาสตร์เป็นวัตถุ เราสามารถบันทึกบิตสองสามบิตเมื่อเขียนด้วยขนาดที่แท้จริงของวัตถุ
array.prototype.max = function () {return math.max.apply ({}, this)} array.prototype.min = function () {return math.min.apply ({}, this)} [1,2,3] .max () // => 3 [1,2,3]