我得到的行为无法解释或弄清楚如何修复:
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.5 318.3 399.9 367.1 447.4 500.0
在第一个c.log中,我得到了
lefts = [{x: 10, y: 20},{x: 30, y: 40},{x: 50, y: 60},{x: 70, y: 80}];
function fnCalcAvg(dims){
// the purpose of this is to take the lefts array and calculate
// the average values for x and y
var theSum = {};
theSum.x = 0;
theSum.y = 0;
console.log([theSum.x, theSum.y, theSum]);
$j(dims).each(function(_k, _v){
theSum.x += (_v.x * 1);
theSum.y += (_v.y * 1);
});
console.log([theSum.x, theSum.y, theSum]);
// if I 'return' here, the object values are correct
theSum.x = parseInt(theSum.x / dims.length);
theSum.y = parseInt(theSum.y / dims.length);
console.log([theSum.x, theSum.y, theSum]);
return theSum;
}
在第二个:
0, 0, {x: 50, y: 674} // individual values are right, object is not
在最后:
200, 2699, {x: 50, y: 674} // individual values are right, object is not
因此,如果我记录x和y的各个值,它是正确的,但是记录对象,我会在分配任何内容之前得到值。
如果在分配最终值(parseInt ...)之前放置一个return语句,则会正确报告对象属性。
这里发生了什么?单个属性如何与记录对象时显示的属性不同?这只是Chrome的一个问题吗?这是范围问题吗?