2016-03-06 110 views
0

我需要創建一個strings的數組,從0.0512,增加0.05改進陣列的動態創建

要做到這一點,我這樣做:

function createDuration(){ 
    var n = 0.05; 
    var arr = [String(n)]; 
    while(n < 12){ 
     n += 0.05; 
     var temp = n.toFixed(2); 
     arr.push(String(temp)); 
    }; 
    return arr; 
} 

這一點,但是,相當緩慢。你有什麼建議可以改進它嗎?如果有幫助,我可以使用_,但不能使用jQuery

回答

0

Number#toFixed()回報已經是一個字符串

function createDuration() { 
 
    var n = 0.05, 
 
     arr = []; 
 
    while (n < 12.05) { 
 
     arr.push(n.toFixed(2)); 
 
     n += 0.05; 
 
    }; 
 
    return arr; 
 
} 
 

 
document.write('<pre>' + JSON.stringify(createDuration(), 0, 4) + '</pre>');

或用固定值:

function createDuration() { 
 
    return Array.apply(null, { length: 240 }).map(function (_, i) { 
 
     return ((i + 1)/20).toFixed(2); 
 
    }); 
 
} 
 

 
document.write('<pre>' + JSON.stringify(createDuration(), 0, 4) + '</pre>');

+1

你的意思是['Number.prototype.toFixed '](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed),當然? – Oka

+0

@Oka,對,謝謝。 –

+0

在您的第一個解決方案中,最後一個值是「11.95」,但它必須是「12.00」 – isvforall