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