JavaScript数组-推送多维数组
我有这样一个数组:JavaScript数组-推送多维数组,javascript,Javascript,我有这样一个数组: message_list = [ { "Main_body": "test msg", "emp_name": "test", "emp_salary": "5000 USD" } ] 其长度(例如,消息列表。长度)为1 现在我有了另一个类似这样的数组: added_user_data = [ { "PostSharedLog": { userids: "2,4,
message_list = [
{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD"
}
]
其长度(例如,消息列表。长度
)为1
现在我有了另一个类似这样的数组:
added_user_data = [
{
"PostSharedLog": {
userids: "2,4,5"
},
"created": "2123123"
},
{
"PostSharedLog": {
userids: "3,1"
},
"created": "2123147"
}
]
其长度(添加了用户数据。长度
)为2
我想将上面的数组添加的用户数据
推入消息列表
我尝试在for
循环中执行此操作,现在由于消息列表的长度为1
,对于第二次迭代,值不会被推送,因为消息列表[1]
不存在且未定义。但是我仍然想创建消息列表[1]
,即使它不存在
如果我执行以下操作:
for(var k =0;<count(added_user_data.length);k++)
{
message_list[k].PostSharedLog = added_user_data[k].PostSharedLog ;
}
[{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD",
"PostSharedLog": {
userids: "2,4,5"
},
"PostSharedLog": {
userids: "3,1"
}
}]
第二次迭代根本不追加任何内容
我希望看到以下内容:
for(var k =0;<count(added_user_data.length);k++)
{
message_list[k].PostSharedLog = added_user_data[k].PostSharedLog ;
}
[{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD",
"PostSharedLog": {
userids: "2,4,5"
},
"PostSharedLog": {
userids: "3,1"
}
}]
JSON对象不能有重复的键。
JSON对象基本上是一个映射
,它有键
和值
。对象中的每个键必须是唯一的
无效的JSON
您发布的预期结果永远不可能存在,因为PostSharedLog
只能存在一次。再次设置它只会更改值
另外,userids
不是有效的JSON键,它应该始终用“
包装
任何人都会告诉你这到底是为什么
{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD",
"PostSharedLog": {
userids: "2,4,5"
},
"PostSharedLog": {
userids: "3,1"
}
}
您可能需要做的是:
{
“主体”:“测试消息”,
“员工姓名”:“测试”,
“雇员工资”:{“金额”:5000,“货币”:美元},
“PostSharedLog”:{
“用户标识”:[2,4,5,3,1]
}
}
笔记:
你的名字不一致。真的吗?每一个都是不同的格式
不要缩写
不要将多值字段存储在字符串
类型中,使用实数组
![1,2,3,4]
而不是“1,2,3,4”
不要在字符串类型中存储多值字段,请使用真实的对象!{amount:5000,currency:“USD”}
而不是“5000 USD”
这里没有JSON。JSON是用于数据交换的文本符号。如果您处理的是源代码,而不是字符串,那么您就不是在处理JSON。”但我仍然希望创建消息列表[1],即使它不存在。“什么规则适用于此?为什么不加一个呢?什么告诉你不应该加两个?您希望看到的最终结果是什么?此外,此数组不是“多维的”。@T.J.Crowder-我已经编辑了我的问题以添加输出数组和我尝试过的内容。@slimshady:无法创建您最后发布的内容。您有一个数组,其中有一个条目,它是一个对象;该对象有两个同名的属性。不能这样做,对象中只能有一个具有给定名称的属性。上面的对象初始值设定项将进行解析,但最终得到的对象只有后一个PostSharedLog
属性。