我正在使用Javascript.
我有
var myobj = {
"one": {
"name" : "paul",
"no" : "A123"
},
"two": {
"name" : "mike",
"no" : "B456"
},
"three": {
"name" : "andy",
"no" : "C789"
},
};
Run Code Online (Sandbox Code Playgroud)
我有另一个newitem要插入的对象
var newIndex = "four";
var newItem = {
"name" : "leo",
"no" : "D987"
};
Run Code Online (Sandbox Code Playgroud)
我要如何插入newItem到myobj用newIndex的"索引"?
顺便说一句,newIndex不是由我生成的,所以我不能只说myobj.four = newItem; myobj.newIndex = newItem不起作用,因为它使用单词'newIndex'作为索引而不是它的值.
任何见解?
使用括号表示法属性访问器:
myobj[newIndex] = newItem;
Run Code Online (Sandbox Code Playgroud)
当您想要定义名称不是有效标识符的属性时,它也很有用,例如:
obj["1foo"] = "bar"; // `obj.1for` will cause a SyntaxError
obj["a b"] = "bar"; // `obj.a b` will cause a SyntaxError
Run Code Online (Sandbox Code Playgroud)
请注意,您甚至可以使用具有此属性访问器的表达式,例如:
obj[someFunc()] = "foo";
Run Code Online (Sandbox Code Playgroud)
它将评估括号之间的表达式,并将结果转换为字符串,因为JavaScript没有真正的哈希表,属性名称必须是String类型.
更多信息:
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |