function simulate(entries, s) {
// 1) Buat salinan array agar tidak merubah data asli
const result = [...entries];
// 2) Iterasi setiap posisi di dalam array
for (let i = 0; i < entries.length; i++) {
// 3) Cek apakah i termasuk di s posisi pertama
// atau di s posisi terakhir
if (i < s || i >= entries.length - s) {
// 4) Jika ya, tandai sebagai “korup” dengan nilai -1
result[i] = -1;
}
// 5) Kalau tidak (posisi di tengah), biarkan nilainya tetap
}
// 6) Kembalikan array yang sudah diproses
return result;
}
-
Salin array input
const result = [...entries];
Spread syntax
[...]
membuat array baru dengan elemen yang sama, sehinggaentries
asli aman. -
Loop indeks
for (let i = 0; i < entries.length; i++) { … }
Variabel
i
berjalan dari0
(elemen pertama) sampaientries.length - 1
(elemen terakhir). -
Tentukan “zona rawan”
i < s
→ posisi pertama sampai ke-s
.i >= entries.length - s
→ posisi terakhir sebanyaks
.
-
Tandai korup
result[i] = -1;
Setiap nilai di zona rawan diganti
-1
. -
Biarkan bagian tengah Jika
i
tidak di zona rawan, kode tidak melakukan apa‑apa → nilai asli tersimpan diresult[i]
. -
Kembalikan hasil
return result;
const records = [4, 1, 3, 5, 4, 7, 9];
console.log(simulate(records, 3));
// Hasil: [-1, -1, -1, 5, -1, -1, -1]
- Indeks 0–2 (tiga pertama) jadi
-1
. - Indeks 3 (tengah) tetap
5
. - Indeks 4–6 (tiga terakhir) jadi
-1
.
Sekarang kamu punya implementasi “malware” yang hanya menyerang ujung-ujung array!