2016-04-26 59 views
0

我在這個鏈接上找到了如何創建具有選定數量的零的數組。 Most efficient way to create a zero filled JavaScript array?如何將多個零推送到已經存在的數組

但我的問題是,假設我已經有一個陣列

var a = ['hihi','haha'] 

我怎樣才能後,我的兩個第一元素添加12個零?使之成爲:

a = ['hihi','haha',0,0,0,0,0,0,0,0,0,0,0,0]; 
當然,我可以走了

for(var i = 0; i < 12, i++){ 
    a.push(0); 
} 

但有一個行方法的

?像

a.push(6*[0]); 

回答

0

總之,把你的陣列和執行與the answer一個concat你提到。

var a = ['hihi','haha'].concat(Array.apply(null, Array(12)).map(Number.prototype.valueOf,0);) 
+1

downvoters,請爲什麼呢? –

+0

嘿,所有的命題正在工作,但爲什麼我應該使用你的方法,而不是['hihi','哈哈']。concat(Array(12).fill(0))是否有區別? – Couteau

+1

@ user3089871,因爲有時填充[不可用](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#Browser_compatibility)。 –

1

你可以例如使用來自您鏈接到創建十二個零的數組答案的解決方案,然後使用Array.prototype.concat函數來創建你所需要的陣列。

var zeroes = Array.apply(null, Array(12)).map(Number.prototype.valueOf, 0); 
var laughters = ['hihi', 'haha']; 
var combined = laughters.concat(zeroes); 
1
function fillArray(value, len) { 
    if (len == 0) return []; 
    var a = [value]; 
    while (a.length * 2 <= len) a = a.concat(a); 
    if (a.length < len) a = a.concat(a.slice(0, len - a.length)); 
    return a; 
} 

雙打在每個迭代的數組,所以它可以創建幾個迭代一個真正的大陣。

0

必須爲0是一個int還是一個字符串? 爲什麼要添加12個零? 你到目前爲止嘗試過什麼?

只是一個簡單的示例,

var a = ['hi', 'ha']; 
for(var i = 0; 14 > a.length; i++){ 
a.push(0); 
} 
+0

這正是從問題的代碼... – Jan

+0

我回答了原來的問題。他稍後補充說,我現在看到。在這個問題中,他錯誤地使用12而不是14,因爲數組中已經有2個字符串。 原來的問題是: 我在這個鏈接上找到如何創建具有選定數量的零的數組。創建零填充JavaScript數組的最有效方法? 但我的問題是,想象我已經有一個陣列 var a = ['hihi','haha'] 我怎麼能在我的兩個第一個元素後面添加12個零?所以它變成: a = ['hihi','haha',0,0,0,0,0,0,0,0,0,0,0,0]; –

+0

他沒有提供任何例子。看看我的前3個問題。他沒有顯示任何他已經嘗試過的代碼示例。在我添加了我的答案後,他編輯了他的原始問題。所以這就是爲什麼我的答案不再有用。所以說我的答案沒有用處是不公平的。這是他改變原來的問題之前。 :) –

相關問題