2012-05-18 20 views
0

我在JavaScript中有一個陣列像如何添加一個陣列數據分成多個動態數組

var arr = ["aa","bb","cc", "dd"]; 

,現在我想將這些值到多個磁盤陣列存儲動態像

var arr1 = ["aa"]; 
var arr2 = ["bb"]; 
var arr3 = ["cc"]; 
var arr4 = ["dd"]; 

這裏作爲根據「arr」數組的大小,我需要創建動態數組來存儲這些值。例如在「arr」中我有4個值,那麼我需要創建4個動態數組來存儲4個值。

我沒有任何想法如何實現這個任何幫助?

+5

的java!= JavaScript的 – isvforall

+1

1)它是對Java或JavaScript? 2)你知道如何接受答案? – home

+1

似乎是Javascript,因爲我從來沒有在Java中看到'var'。 – StepTNT

回答

0

我能想到的唯一方法就是用eval來完成你所要求的。我不建議使用它,所以我把一個物體放在一起,這是一個非常接近和偏愛的物體。

http://jsfiddle.net/P9SSA/1/

var myOneArray = ["a","b","c","d"]; 

var varPrefix = "arr"; 
var myObj = {}; 
for (var i = 1; i <= myOneArray.length; i++) { 
    eval(varPrefix + i + '=["' + myOneArray[i-1] + '"]'); 
    myObj[varPrefix + i] = [myOneArray[i-1]]; 
} 

document.write(arr1); 
document.write("<br>"); 
document.write(myObj.arr3); 
+0

感謝您的回覆我有一個解決方案 – Nithin

0
var arrayOfArrays = []; 
for (var i = 0; i < arr.length; i++) { 
    arrayOfArrays[i] = []; 
    arrayOfArrays[i].push(arr[i]); 
} 
1

在全球範圍內,你可以這樣做:

arr.forEach(function(value, index) { 
    window["arr"+(index+1)] = [value]; 
}); 

內任意範圍,這是唯一可能在非嚴格的eval:

var arr = ["aa","bb","cc", "dd"]; 

eval(arr.map(function(value,index) { 
    value = typeof value == "string" ? '"' + value + '"' : value; 
    return 'var arr'+(index+1)+' = ['+value+']'; 
}).join(";") + ";"); 

評估以下代碼:

var arr1 = ["aa"]; 
var arr2 = ["bb"]; 
var arr3 = ["cc"]; 
var arr4 = ["dd"]; 

forEach shim
map shim

+0

爲什麼不使用'for(var i = ...)'?提示:MSIE。 –

+0

@SalmanA,因爲它允許答案更肉,更少的樣板。 – Esailija

+0

@Esailija感謝您的回覆。我嘗試過你的方法,它不適合我。你能提供更多的代碼嗎? – Nithin

相關問題