Diskusi Arya Adhi Prasetyo

Selesai
Arya Adhi Prasetyo
Ditanyakan pada: Menampilkan Data Produk Di Shopping Cart

Reduce

Ketika array bernilai kosong maka dibutuhkan initial value pada method reduce agar tidak terjadi error.

Pertanyaan nya adalah : dalam pembahasan di video terdapat array yg bernilai dari cartItems yg di import dari data-seed.js, nah mengapa pada saat saya hapus initial valuenya maka hasilnya terjadi error?

Bukankah error pada method reduce terjadi bila nilai pada array bernilai kosong dan initial value tidak di definisikan, sementara pada cartItems array memiliki value, tetapi pada saat saya hapus initial valunya mengapa bisa terjadi error?

screenshot : https://ibb.co/NVfFDdm

2 Jawaban

Avatar
Muhammad Fakhry Burhanuddin

14 hari yang lalu

totalPrice() { return this.cartItems.reduce( (sum, item) => sum + Number(item.price), 0 ) }

Dari screenshot yang ditampilkan itu bukan error tapi salah nilai.

Pada saat argumen initialValue dihapus maka method reduce akan mengambil elemen pertama pada array sebagai initialValue.

Jadi variabel sum akan bernilai elemen pertama pada saat pertama method reduce dipanggil. Itulah makanya muncul tulisan [object Object] di screenshot. Itu karena pada array tersebut elemennya berupa object. Itulah makanya kita menambah 0 sebagai argumen initialValue

Avatar
BroKoding

14 hari yang lalu

Jawaban Terpilih

Halo kak, ketika kita menghapus initial value dari method reduce, ada beberapa kemungkinan yang dapat menyebabkan kesalahan, termasuk struktur data yang tidak sesuai dengan yang diharapkan oleh fungsi reduce dan operasi yang dilakukan di dalamnya. Meskipun cartItems memiliki nilai, kesalahan masih bisa terjadi karena perbedaan struktur data atau operasi yang tidak sesuai. Selain itu, kesalahan juga dapat disebabkan oleh bagian kode lain yang memengaruhi jalannya program secara keseluruhan. Penting untuk kita memeriksa kembali kode yang berkaitan dengan reduce serta bagian-bagian lain yang mungkin memengaruhi alur eksekusi program. Dengan memahami penyebab potensial kesalahan tersebut, kita dapat mengidentifikasi dan memperbaiki masalah dengan lebih efektif.