【发布时间】:2020-04-30 21:10:23
【问题描述】:
我有一个类定义……
class anObj {
"ID" : string;
dialog: {[id : number]:{hide: boolean;}} = {
0 : {"hide": false},
14 : {"hide": false}
}
}
class manyObjects {
myGroup: anObj [] = [];
}
...
public stuff = manyObjects;
这完全符合我的要求...我可以使用 id 值作为直接键...
var x:number = 1 //used for a different tier of logic
stuff.myGroup[x].dialog[14].hide!=true
这就是我卡住的地方...我想在组中添加更多对话框。我一路走来……
stuff.myGroup[x].dialog
并且无法弄清楚如何添加类似推送的东西......
.push(7 : {"hide": true})
例如,我可以输入这一行,IDE 说没问题...
stuff.myGroup[x].dialog[[id=7].push({"hide": false})];
但是,当我检查时,该元素没有被添加到数组中......
【问题讨论】:
-
.push()修改原数组,不返回新数组。 -
是的,Sunny Patel,我想在现有阵列中添加一个新项目。我还没有尝试退货。您将如何向其中添加新项目?说一个看起来像这样的... 7 : {"hide": true}
-
我没有添加新对话框。我正在构建我现在所说的非对称键/值对索引数组,例如 myThing: {[myKey: type] :{key1: type; key2: type}} = {"salutation" : {"key1": "Hi"}, {"key2": "你好吗?"}, "conversation" : {"key1": "'s good"}, {"key2": "dem Mets 怎么样?"}} 如果您完全声明所有元素,例如 myThing[salutation].key2 == "How are you?",这将有效。无需通过索引循环所有键就可以很容易地找到特定值。然而!我想添加一个新元素,例如 "departure" : {"key1": "It's been good."}, {"key2": "see ya!"} 并且不能。
-
这里没有 JSON。 JSON 是一种用于移动和存储数据的文本格式。见There is no such thing as a JSON Object。
标签: javascript arrays json typescript key