Saya mendapatkan kesalahan ini. Mohon diperhatikan splits adalah array dengan nilai.

TypeError: Tidak dapat membaca properti 'push' dari undefined

Di

var products = splits.reduce((accu, curr) => {
  if (accu[curr[0]] === null) {
    accu[curr[0]] = [];
  }
  accu[curr[0]].push(curr[1]);
  return accu;
}, {});

var result = Object.keys(products).map(key => `${key} - ${products[key].join(', ')}.`).join(' ');

Hargai siapa pun yang membantu memperbaiki kode di atas

0
vdvaart 12 Mei 2021, 13:12

1 menjawab

Jawaban Terbaik

null === undefined adalah false dalam Javascript.

console.log(null === undefined);

Jadi kondisi accu[curr[0]] === null akan mengembalikan false meskipun accu[curr[0]] adalah undefined. Sebagai gantinya, Anda bisa menggunakan negasi (!) untuk memeriksa apakah variabelnya didefinisikan

console.log(!null);
console.log(!undefined);

Coba yang berikut ini

let products = splits.reduce((accu, curr) => {
  if (!accu[curr[0]]) {
    accu[curr[0]] = [];
  }
  accu[curr[0]].push(curr[1]);
  return accu;
}, {});
1
Michael D 12 Mei 2021, 10:25