Saya menggunakan Vue.js dengan JavaScript.

Saya memiliki array objek yang disebut products dan setiap objek memiliki property yang disebut smallest_unit_barcode. Saya hanya ingin memfilter produk dengan kode batang seperti value, jadi saya melakukan fungsi ini:

if (value != '') {
    var results = this.products.filter(obj=>obj.smallest_unit_barcode.includes(value));
    var results = results.slice(Math.max(results.length - 20, 0))
    this.pos_quick_lunch = results;
}

Semuanya berfungsi dengan baik, tetapi jika obj.smallest_unit_barcode == null, saya mendapatkan kesalahan ini:

Error in v-on handler: "TypeError: Cannot read property 'includes' of null"

Bagaimana saya bisa mengabaikan nilai null saat memfilter array produk?

1
softya 3 Juli 2020, 14:08

1 menjawab

Jawaban Terbaik

Bandingkan dengan null sebelum Anda mencoba mengakses properti:

obj => obj.smallest_unit_barcode !== null && obj.smallest_unit_barcode.includes(value)

Karena && adalah korsleting, operan kanan tidak akan dievaluasi jika operan kiri bernilai false.

5
Mo. 11 Agustus 2020, 12:45