オブジェクトのプロパティのアンパサンド
Nov 22 2020
一部のプロパティに&が含まれるオブジェクトを含むJSスクリプトを作成しています。
var topicObj = {
"Client & Peripherals": ["USB", "Printer", "Copy/Paste"],
"Install & Upgrade": ["Tenant Upgrade", "Agent upgrade"]
}
問題は、その値の1つを反復しようとすると、たとえば
selMTopic = "Client & Peripherals"
for (t in topicObj[selMTopic]) {
addTopic(topicsDD,topicObj[selMTopic][t]);
}
失敗し、tを計算できません。プロパティに&や同様の文字を含めるのは好きではないと思います。
私は運がないプロパティで&を持って使用する方法を見つけようとしてきました。encodeURIComponentを使用して文字列をエンコードしようとしましたが、うまくいきませんでした。
可能であれば、どうすればそれを行うことができますか?私はそれらを持っている必要があります&そこにあります。オブジェクトの代わりに2つの配列を使用することを考えています。1つはオブジェクトのプロパティを持ち、もう1つはオブジェクトの値の配列です。しかし、将来的に「深さのレベル」を追加する必要があるかもしれないので、私はむしろオブジェクトに固執したいと思います。
回答
1 MisterJojo Nov 22 2020 at 08:45
使用の(配列用)の代わりに(プロパティ)
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 );
}
}