ZDIRY-TUFWT-EBONM-EYJ00-IDBLANTER.COM
ZDIRY-TUFWT-EBONM-EYJ00

BLANTERWISDOM105

5 Cara Mencari Nilai Min dan Max Beserta Perbandingannya di Javascript

4/06/2020

Mencari nilai min dan max merupakan rumus matematika yang sering digunakan di berbagai bidang yang membutuhkan perhitungan seperti halnya pada jquery. Min dan Max biasanya akan digunakan ketika mencari nilai pada sebuah data array. Di dalam array pasti memiliki banyak argument atau nilai.

Ada 5 cara untuk mencari nilai Min dan Max pada Array yaitu:

Cara Pertama, Menggunakan ES6 Spread Operator, dimana rumusnya adalah:

Math.min(...Array);

Math.max(...Array);

Cara Kedua, Menggunakan Reduce Script, dimana rumusnya adalah:

Array.reduce(function(a, b) {

  return Math.max(a, b);

});

Array.reduce(function(a, b) {

  return Math.min(a, b);

});

Cara Ketiga, Menggunakan Apply, dimana rumusnya adalah:

Math.min.apply(Math, Array);

Math.max.apply(Math, Array);

Cara Keempat, Menggunakan Standard Loop, dimana rumusnya adalah:

let max = Array[0];

for (let i = 1; i < Array.length; ++i) {

  if (Array[i] > max) {

    max = Array[i];

  }

}

 

let min = Array[0];

for (let i = 1; i < Array.length; ++i) {

  if (Array[i] < min) {

    min = Array[i];

  }

}

Cara Kelima, Menggunakan MDN Hybrid Solution, dimana rumusnya adalah:

function minOfArray(arr) {

    var min = Infinity;

    var QUANTUM = 32768;

 

    for (var i = 0, len = arr.length; i < len; i += QUANTUM) {

        var submin = Math.min.apply(null, arr.slice(i, Math.min(i + QUANTUM, len)));

        min = Math.min(submin, min);

    }

 

    return min;

}

 

minOfArray(Array);

 

function maxOfArray(arr) {

    var max = -Infinity;

    var QUANTUM = 32768;

 

    for (var i = 0, len = arr.length; i < len; i += QUANTUM) {

        var submax = Math.max.apply(null, arr.slice(i, Math.max(i + QUANTUM, len)));

        max = Math.max(submax, max);

    }

 

    return max;

}

maxOfArray(Array);

Dari kelima cara mencari nilai Min dan Max tersebut memiliki perbandingan yang dapat dijadikan sebuah pertimbangan nantinya misalkan tingkat kecepatan.

Jquery and Javascript

Untuk mencoba berbagai cara tersebut ada dapat copy script di bawah ini dan simpan sebagai file html.

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
	$("#btn2").click(function(){
    	var Array =[1,2,3,5,6,3,6,5,4]
		
		// MIN AND MAS USING ES6 SPREAD
		var min, max;
		min = Math.min(...Array);
		var html
        html = '<li><span>Minimun ES6 Spread:'+min+'</span></li>';
    	$('.list').append(html);
    	
	    max = Math.max(...Array);
		html= '<li><span>Maximum ES6 Spread:'+max+'</span></li>';
    	$('.list').append(html);
		
		//PENUMLAHAN MIN DAN MAX
		var sum = parseInt(min) + parseInt(max);
		html = '<li><span>Sum :'+sum+'</span></li>';
		$('.list').append(html);
		
		// MIN AND MAS USING REDUCE
		max = Array.reduce(function(a, b) {
			return Math.max(a, b);
		});
		min = Array.reduce(function(a, b) {
			return Math.min(a, b);
		});
		html = '<li><span>Min Reduce :'+min+'</span></li>';
		$('.list').append(html);
		html = '<li><span>Max Reduce :'+max+'</span></li>';
		$('.list').append(html);
		
		// MIN AND MAS USING APPLY
		min = Math.min.apply(Math, Array);
		max = Math.max.apply(Math, Array);
		html = '<li><span>Min Apply :'+min+'</span></li>';
		$('.list').append(html);
		html = '<li><span>Max Apply :'+max+'</span></li>';
		$('.list').append(html);

		// MIN AND MAS USING STANDARD LOOP
		min = Array[0];
		for (let i = 1; i < Array.length; ++i) {
			if (Array[i] < min) {
				min = Array[i];
			}
		}
		
		max = Array[0];
		for (let i = 1; i < Array.length; ++i) {
			if (Array[i] > max) {
				max = Array[i];
			}
		}
		html = '<li><span>Min Standard Loop :'+min+'</span></li>';
		$('.list').append(html);
		html = '<li><span>Max Standard Loop :'+max+'</span></li>';
		$('.list').append(html);
		
		
		// MIN AND MAS USING MDN Hybrid Solution
		function minOfArray(arr) {
			var min = Infinity;
			var QUANTUM = 32768;
	
			for (var i = 0, len = arr.length; i < len; i += QUANTUM) {
				var submin = Math.min.apply(null, arr.slice(i, Math.min(i + QUANTUM, len)));
				min = Math.min(submin, min);
			}
			
			return min;
		}
		
		min = minOfArray(Array);
		
		function maxOfArray(arr) {
			var max = -Infinity;
			var QUANTUM = 32768;
			
			for (var i = 0, len = arr.length; i < len; i += QUANTUM) {
				var submax = Math.max.apply(null, arr.slice(i, Math.max(i + QUANTUM, len)));
				max = Math.max(submax, max);
			}
			
			return max;
		}
		max = maxOfArray(Array);
		
		html = '<li><span>Min MDN Hybrid Solution :'+min+'</span></li>';
		$('.list').append(html);
		html = '<li><span>Max MDN Hybrid Solution :'+max+'</span></li>';
		$('.list').append(html);
		
	});
});


</script>
</head>
<body>
<p>Array = [1,2,3,5,6,3,6,5,4] </p>
<p>This is a New Array.</p>

<ol class="list">
</ol>
<button id="btn2">Prepend list item</button>

</body>
</html>
Share This :

0 Comments