Ampersand di properti objek

Nov 22 2020

Saya sedang menulis skrip JS yang memiliki objek dengan & di beberapa propertinya, misalnya

var topicObj = {
"Client & Peripherals": ["USB", "Printer", "Copy/Paste"],
"Install & Upgrade": ["Tenant Upgrade", "Agent upgrade"]
}

Masalahnya adalah, ketika saya mencoba mengulang salah satu nilainya, misalnya

selMTopic = "Client & Peripherals"
for (t in topicObj[selMTopic]) {
  addTopic(topicsDD,topicObj[selMTopic][t]);
}

gagal, tidak dapat menghitung t , saya rasa tidak suka memiliki &, dan karakter serupa, di properti.

Saya sudah mencoba mencari tahu bagaimana memiliki dan menggunakan & di properti tanpa hasil; Saya sudah mencoba menyandikan string dengan encodeURIComponent tetapi tidak berhasil juga.

Tahu bagaimana saya bisa melakukannya, jika memungkinkan? Saya harus memilikinya & ada di sana. Saya berpikir itu menggunakan dua array, bukan objek, satu dengan properti objek, dan yang lainnya masing-masing array nilai objek; tetapi saya benar-benar lebih suka tetap menggunakan sebuah objek, karena saya mungkin perlu menambahkan lebih banyak "level kedalaman" di masa mendatang.

Jawaban

1 MisterJojo Nov 22 2020 at 08:45

menggunakan dari (untuk array) bukan di (untuk properti)

var topicObj =
  { "Client & Peripherals" : ["USB", "Printer", "Copy/Paste"]
  , "Install & Upgrade"    : ["Tenant Upgrade", "Agent upgrade"]
  }
for (let selMTopic in topicObj)
  {
  for (let t of topicObj[selMTopic])
    {
    console.log( selMTopic,'->', t )
    // addTopic(topicsDD, t );
    }
  }