我有一个javascript函数,可为页面上的下拉菜单创建值。我目前正以5(0-100)递增。
我正尝试将其更改为以.5
递增,但是它一直只是返回0-100
而没有递增。
我的预期输出是0,.5,1,1.5,2,2.5 ... 100
。
到目前为止,这是我的职能:
/**
* Generate our possible error scores
*/
function generateErrorScores() {
var min = 0,
max = 100,
multiplier = 5, // Tried .5 here
list = [];
// Loop between min and max, increment by multiplier
for (var i = min; i <= max; i++) {
if (i % multiplier === 0) {
list.push(i);
}
}
return list;
}
console.log(generateErrorScores())
提琴:http://jsfiddle.net/3y451jga/
我感觉到它的if (i % multiplier === 0) {
引起了问题,但是我不确定如何使它适应.5
的增量。
答案 0 :(得分:2)
如果只需要列表private static final File DATA_FILE = new File("/dbfs/mnt/data/test-data.json");
,则可以:
[0, 0.5, 1, 1.5, ..., 100]
答案 1 :(得分:1)
我认为这样做会更容易
for (var i = min; i <= max; i+=0.5) {
list.push(i);
}
答案 2 :(得分:1)
if (i % multiplier === 0)
无用。如果您需要列表中的乘数,那会起作用,但是在这种情况下,您需要分数。
有趣的是,您的注释是正确的(“乘以增量”),但是代码没有做到这一点。一个有效的解决方案是这样的:
function generateErrorScores() {
var min = 0,
max = 100,
segment = .5,
list = [];
// Loop between min and max, increment by segment
for (var i = min; i <= max; i += segment) {
list.push(i);
}
return list;
}
console.log(generateErrorScores())
答案 3 :(得分:0)
您只需将i
加上0.5
即可获得预期的输出,这里无需进行额外检查。
for (var i = min; i <= max; i+=0.5) {
/**
* Generate our possible error scores
*/
function generateErrorScores() {
var min = 0,
max = 100,
multiplier = 0.5,
list = [];
// Loop between min and max, increment by multiplier
for (var i = min; i <= max; i += 0.5) {
list.push(i);
}
return list;
}
console.log(generateErrorScores())
答案 4 :(得分:0)
function generateErrorScores() {
var min = 0,
max = 100,
increment = 0.5,
list = [];
// Loop between min and max, increment by multiplier
for (var i = min; i <= max; i = i + increment) {
list.push(i);
}
return list;
}
console.log(generateErrorScores());