不理解JavaScript Reduce为什么不返回长度为3的对象
我有一个简单的reduce示例,它返回的长度是2,而不是3。为什么?我原以为它会在这三个过程中迭代不理解JavaScript Reduce为什么不返回长度为3的对象,javascript,Javascript,我有一个简单的reduce示例,它返回的长度是2,而不是3。为什么?我原以为它会在这三个过程中迭代 const会话=[{ “id”:101, “会话ID”:6182, “注意力价值”:2 }, { “id”:102, “会话ID”:6183, “attendvalue”:0 }, { “id”:103, “会话ID”:6184, “注意力价值”:1 } ]; const sessionsObj=sessions.reduce((acc,cur)=>{ acc[当前会话ID]=当前; 返回acc
const会话=[{
“id”:101,
“会话ID”:6182,
“注意力价值”:2
},
{
“id”:102,
“会话ID”:6183,
“attendvalue”:0
},
{
“id”:103,
“会话ID”:6184,
“注意力价值”:1
}
];
const sessionsObj=sessions.reduce((acc,cur)=>{
acc[当前会话ID]=当前;
返回acc;
});
console.log(sessionsObj.length)代码>您没有设置起始对象,这是reduce中的第二个参数
此外,还需要使用Object.keys
来计算项目数
试着这样做:
const会话=[{
“id”:101,
“会话ID”:6182,
“注意力价值”:2
},
{
“id”:102,
“会话ID”:6183,
“attendvalue”:0
},
{
“id”:103,
“会话ID”:6184,
“注意力价值”:1
}
];
const sessionsObj=sessions.reduce((acc,cur)=>{
acc[当前会话ID]=当前;
返回acc;
}, {});
log(Object.keys(sessionsObj.length)代码>您没有设置起始对象,这是reduce中的第二个参数
此外,还需要使用Object.keys
来计算项目数
试着这样做:
const会话=[{
“id”:101,
“会话ID”:6182,
“注意力价值”:2
},
{
“id”:102,
“会话ID”:6183,
“attendvalue”:0
},
{
“id”:103,
“会话ID”:6184,
“注意力价值”:1
}
];
const sessionsObj=sessions.reduce((acc,cur)=>{
acc[当前会话ID]=当前;
返回acc;
}, {});
log(Object.keys(sessionsObj.length)代码>您需要传递初始值:
初始值|可选
值用作回调的第一个调用的第一个参数如果未提供初始值,将使用数组中的第一个元素
。调用没有初始值的空数组是错误的
实际上,结果将是一个具有更多属性的对象
const sessions=[{“id”:101,“sessionId”:6182,“attendvalue”:2},{“id”:102,“sessionId”:6183,“attendvalue”:0},{“id”:103,“sessionId”:6184,“attendvalue”:1}];
const sessionsObj=sessions.reduce((acc,cur)=>{
acc[当前会话ID]=当前;
返回acc;
}, { });
// ^
// |
//+----初始值
log(Object.values(sessionsObj.length)代码>
.as控制台包装{max height:100%!important;top:0;}
您需要传递初始值:
初始值|可选
值用作回调的第一个调用的第一个参数如果未提供初始值,将使用数组中的第一个元素
。调用没有初始值的空数组是错误的
实际上,结果将是一个具有更多属性的对象
const sessions=[{“id”:101,“sessionId”:6182,“attendvalue”:2},{“id”:102,“sessionId”:6183,“attendvalue”:0},{“id”:103,“sessionId”:6184,“attendvalue”:1}];
const sessionsObj=sessions.reduce((acc,cur)=>{
acc[当前会话ID]=当前;
返回acc;
}, { });
// ^
// |
//+----初始值
log(Object.values(sessionsObj.length)代码>
.as console wrapper{max height:100%!important;top:0;}
由于缺少初始值reduce(acc,{})
,请执行console.log(sessions)
以查看初始值的变化!因为您缺少初始值reduce(acc,{})
,请执行console.log(sessions)
以查看初始值的变化!长度无效吗?如果不是,为什么?@Pete键值对对象没有属性length
。length无效吗?如果不是,为什么?@Pete键值对对象没有属性length
。