E comercial nas propriedades do objeto
Estou escrevendo um script JS que tem um objeto com & em algumas de suas propriedades, por exemplo
var topicObj = {
"Client & Peripherals": ["USB", "Printer", "Copy/Paste"],
"Install & Upgrade": ["Tenant Upgrade", "Agent upgrade"]
}
A questão é, quando tento iterar sobre um de seus valores, por exemplo
selMTopic = "Client & Peripherals"
for (t in topicObj[selMTopic]) {
addTopic(topicsDD,topicObj[selMTopic][t]);
}
falha, não pode computar t , acho que não gosta de ter &'s e caracteres semelhantes na propriedade.
Tenho tentado descobrir como ter e usar & 's em propriedades sem sorte; Tentei codificar a string com encodeURIComponent, mas também não tive sorte.
Alguma ideia de como posso fazer isso, se possível? Eu preciso ter esses & está lá. Estou pensando nisso usando duas matrizes em vez do objeto, uma com as propriedades do objeto e a outra com cada uma das matrizes de valor do objeto; mas eu realmente prefiro ficar com um objeto, pois posso precisar adicionar mais "níveis de profundidade" no futuro.
Respostas
usar de (por matriz), em vez de em (para propriedades)
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 );
}
}