这是一个代码审查问题,而不是任何事情。将相对宽度列表转换为像素宽度
我有以下问题:
鉴于相对宽度的列表(没有刚才的所有相互单元无论如何,),生成像素宽度的列表,以便这些像素宽度具有相同的比例作为原始列表。
输入:比例列表,总像素宽度。
输出:像素宽度的列表,其中每个宽度是一个int,并且它们的总和等于总宽度。
代码:
var sizes = "1,2,3,5,7,10".split(","); //initial proportions
var totalWidth = 1024; // total pixel width
var sizesTotal = 0;
for (var i = 0; i < sizes.length; i++) {
sizesTotal += parseInt(sizes[i], 10);
}
if(sizesTotal != 100){
var totalLeft = 100;;
for (var i = 0; i < sizes.length; i++) {
sizes[i] = Math.floor(parseInt(sizes[i], 10)/sizesTotal * 100);
totalLeft -= sizes[i];
}
sizes[sizes.lengh - 1] = totalLeft;
}
totalLeft = totalWidth;
for (var i = 0; i < sizes.length; i++) {
widths[i] = Math.floor(totalWidth/100 * sizes[i])
totalLeft -= widths[i];
}
widths[sizes.lenght - 1] = totalLeft;
//return widths which contains a list of INT pixel sizes
是的,看起来应该可行。我喜欢那个技巧。谢谢! – mkoryak 2010-04-12 17:51:45