在数组中插入对象失败
Inserting an object inside an array fails
我从mongodb 中提取了这些数据
{
"_id" : "RLvWTcsrbRXJeTqdB",
"examschoolid" : "5FF2JRddZdtTHuwkx",
"examsubjects" : [
{
"subject" : "Z4eLrwGwqG4pw4HKX"
},
{
"subject" : "fFcWby8ArpboizcT9"
}
],
"examay" : "NrsP4srFGfkc5cJkz",
"examterm" : "5A5dNTgAkdRr5j53j",
"examclass" : "gYF2wE4wBCRy9a3ZC",
"examname" : "First",
"examdate" : ISODate("2016-05-07T22:41:00Z"),
"examresultsstatus" : "notreleased"
}
我想迭代examsubjects
,最后在数组中插入一个对象,得到一个像这样的数组
"examsubjects" : [
{
"Z4eLrwGwqG4pw4HKX" : "0",
"fFcWby8ArpboizcT9" : "0"
}
],
这是我的代码
var result = new Array();
for (i = 0; i < doc.examsubjects.length; i++) {
var arr = {};
for (var prop in doc.examsubjects[i]) {
arr[doc.examsubjects[i][prop]] = 0;
}
result.push(arr);
}
这给了我这个阵列
"examsubjects" : [
{
"Z4eLrwGwqG4pw4HKX" : 0
},
{
"fFcWby8ArpboizcT9" : 0
}
],
我怎样才能得到我想要的数组?。
在您的尝试中,初始化一个空数组,并为examsubjects
数组中的每个对象推送一个新对象,此时您要做的是将所有考试科目的数据只放入一个对象中,而此时您显然想加入一个数组。实现这一点的多种方法之一是这样的:
var result = [{}];
for (i = 0; i < doc.examsubjects.length; i++) {
for (var prop in doc.examsubjects[i]) {
// Here we repeatedly modify the single
// object in our results array
result[0][doc.examsubjects[i][prop]] = 0;
}
}
// result now looks like [{"Z4eLrwGwqG4pw4HKX": "0", "fFcWby8ArpboizcT9": 0"}]
相关文章:
- 带有对象解析的响应javascript ajax失败
- 在数组中插入对象失败
- 剑道网格-插入具有外部列的新对象失败
- 从php获取javascript中的json对象失败
- 为什么当我使用变量而不是整数或字符串时初始化日期对象失败
- Javascript Date 对象失败
- 在Jasmine中测试空对象失败
- 在GWT中将JavaScriptObject转换为Java对象失败
- 在IE8中初始化另一个对象内部的对象失败
- 向阵列添加对象失败
- 日志含义传递JSON对象失败
- Javascript函数创建新对象失败
- Json请求向PHP传递Json对象失败
- 创建新对象失败,错误代码:没有找到用于更新/删除的对象
- JavaScript -对象失败
- 创建动态对象失败
- 解析json字符串为JavaScript对象失败
- 在内容脚本中使用jQuery获取DOM对象失败
- IoT/WinJS/VS -创建web诊断对象失败
- JS运行函数在多个dim对象失败.不确定这是否可能