Nilai terkecil di dalam Array yang lebih besar untuk tiap element

Halo para master, adakah disini yg bisa memberi saya pencerahan utk menyelesaikan logika seperti ini (dengan javascript):

Misalnya saya punya set bilangan (dalam array) sebanyak "n" bilangan acak. Berdasarkan set bilangan tersebut, saya pengen nyari bilangan terkecil yang lebih besar dari setiap bilangan.
----------------------------------------------------------------------------
Contoh input:
3  5  6  2  3  9  4  3  7

Expected output:
4  6  7  3  4  9  5  4  9

4 (nilai terkecil yg lebih besar dari 3)
6 (nilai terkecil yg lebih besar dari 5)
7 (nilai terkecil yg lebih besar dari 6)
3 (nilai terkecil yg lebih besar dari 2)
4 (nilai terkecil yg lebih besar dari 3)
9 (pengecualian, karna paling besar)
5 (nilai terkecil yg lebih besar dari 4)
4 (nilai terkecil yg lebih besar dari 3)
9 (nilai terkecil yg lebih besar dari 7)
----------------------------------------------------------------------------

Kode yg saya punya sekarang baru bekerja utk index[0] saja, bagaimana ya agar bisa berulang utk tiap indexnya?
----------------------------------------------------------------------------
let input = prompt("enter nilai input:").split(" ");
function BiggerThan(inArray) {
 return inArray > input;}
let arrBiggerElements = input.filter(BiggerThan);
let nextElement = Math.min.apply(null, arrBiggerElements); 
console.log(nextElement);

image.pngimage.png

avatar mpales7

Ditanyakan oleh @mpales7

4 Kontribusi 0 Poin

Login untuk menanggapi


Jawaban

sepertinya pertanyaan dan sample (contoh input dan expected output) berbeda.
kalau dibilang bilang terkecil min-dari-array, ini lebih ke max-dari-array.
Dan di-index terakhir itu max-dari-array.

-------------------------------------------
kalau dari code yang ada, tinggal di-loop input variable.
caranya banyak dari for-each, for, map dan lainnya.

Code dibawah, loopnya pakai map.
sk-mpales7-20200918-Math-Max-4.pngsk_mpales7_20200918MathMax_4.png
avatar soeleman

Dijawab oleh @soeleman

58 Kontribusi 55 Poin

  • sudah saya update penjelasannya di pertanyaan mas, biar lebih jelas - @mpales7
  • updated jawaban - @soeleman

Login untuk menanggapi


Login untuk gabung berdiskusi