计算数字的开头中间和结尾

时间:2013-06-30 05:20:40

标签: javascript jquery css math

我需要任何给定数字的开始,中间和结束值,它不必平均分配,只需要一点逻辑。例如:

var parts = 3;

显然,我可以将其除以3,得到一个均匀设计的结果start: 1; middle: 1; end: 1

但是,如果用户要输入类似的内容:

var parts = 8;

在我看来,答案是start: 2; middle: 4; end: 2

我需要根据'parts'变量的长度执行基本任务。

示例:

我需要计算开始值,中间值和结束值,这样我才能做到这样的事情。

for (var t=0; t < start; t++){
    console.log('Start');
}
for (var t=0; t < middle; t++){
    console.log('Middle');
}
for (var t=0; t < end; t++){
    console.log('End');
}

我怎么能算出这个?

3 个答案:

答案 0 :(得分:2)

var parts, segment, start, middle, end;

parts = 8; // Obviously this value would be defined elsewhere

segment = Math.floor(parts / 3);

start = end = segment;
middle = parts - (segment * 2);

答案 1 :(得分:1)

以下是解决方案:

var start,end,middle;
var parts=10;
if(parts%3==0)
{
start=end=middle=parts/3;
}
else
{
start=parseInt(parts/3);
end=parseInt(parts/3);
middle=parts-start-end;
}
console.warn(start+" "+end+" "+middle);

这是小提琴:http://jsfiddle.net/j9WUZ/4/

答案 2 :(得分:0)

说实话,我一离开家,上车,便记得Modulo Operation。虽然你的大部分答案都有效,但我有一个使用Modulos的答案,我必须在这里自私,而且最简单和正确的版本。

var parts=9;
var start = end = middle = (parts - (parts % 3)) / 3;
middle += parts % 3;

但是谢谢大家的帮助!

演示:http://jsfiddle.net/B5tap/