也许值得把它抽象成一个函数。。。我把它清理了一下。我也不知道那是怎么回事
sizesTotal != 100...
function pixelWidths(proportions, totalPx) {
var pLen = proportions.length,
pTotal = 0,
ratio, i;
for ( i = -1; ++i < pLen; )
pTotal += proportions[i];
ratio = totalPx / pTotal;
pTotal = 0;
for ( i = -1; ++i < pLen; )
pTotal += proportions[i] = ~~(proportions[i] * ratio);
proportions[pLen-1] += totalPx - pTotal;
return proportions;
}
pixelWidths([1,2,3,5,7,10], 1024); // => [36, 73, 109, 182, 256, 368]
仅供参考,
~~
toInt32
操作),然后铺设地板。例如:
~~'2'; // => 2
~~'2.333'; // => 2
~~null; // => 0