我有一个关于下划线减少对象行为的问题。
给出以下对象:
var data = [ { type: "A", val: 2 },
{ type: "B", val: 3 },
{ type: "R", val: 3 },
{ type: "L", val: 3 },
{ type: "R", val: 3 },
{ type: "A", val: 1 },
{ type: "B", val: 5 } ];
以下功能:
output = _(data).reduce(function(mem, d) {
console.log(mem);
mem[d.type] = d.type;
return mem
}, {});
控制台中所有8次迭代的输出是:
Object { A: "A", B: "B", R: "R", L: "L" }
1)为什么会发生这种情况,第一个输出不应该是空的,因为我已经给它一个{}作为我的初始状态?
2)为什么所有独特类型似乎都是从第一次迭代中找到的?
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:1)
您的代码没有问题。
问题是,在单击小三角形以展开该对象之前,控制台不会自动展开对象。它向您显示对象的截断引用,在展开对象之前,它不会变为现实。
要查看此内容,请查看以下系列屏幕截图:
我设置了对象:
然后我从第一个输出扩展控制台: