2011-12-06 59 views
4

我有這個JavaScript:有沒有快捷方式在JavaScript中創建填充數組?

function padded_array(k, value){ 
    var a = []; 
    a[k] = value; 
    return a; 
} 

padded_array(3, "hello"); //=> [undefined, undefined, undefined, 'hello'] 

是否有可能縮短在函數體中的代碼?

+0

都能跟得上。儘可能短,你可以做到。它太久了? –

回答

3

如果你要排除的 '你好',你可以使用

new Array(count);

創建填充陣列。

編輯:也許是這樣?

new Array(5).concat("hello")

1

不能在標準ES5或前身。當然你可以在jQuery中做類似$.extend([], {"3": "hello"})的事情;你甚至可以做

Object.create(Array.prototype, {"3": {value: "hello"} }); 

裸ES5,但它是黑客,我不認爲這是一個解決方案(如果它是確定和你在一起,你可以通過它)。

4

來到這裏所有的Google員工 - 你可能在尋找這樣的:

var pad_array = function(arr,len,fill) { 
    return arr.concat(Array(len).fill(fill)).slice(0,len); 
} 
+0

非常有幫助,謝謝! –

相關問題