我在javascript中有一个数组,如
var arr = ["aa","bb","cc", "dd"];
现在我想将这些值动态存储到多个数组中,如
var arr1 = ["aa"];
var arr2 = ["bb"];
var arr3 = ["cc"];
var arr4 = ["dd"];
这里根据“arr”数组的大小,我需要创建动态数组来存储这些值。例如在“arr”中我有4个值,然后我需要创建4个动态数组来存储4个值。
我不知道如何实现这一目标?
答案 0 :(得分: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"];
答案 1 :(得分:0)
var arrayOfArrays = [];
for (var i = 0; i < arr.length; i++) {
arrayOfArrays[i] = [];
arrayOfArrays[i].push(arr[i]);
}
答案 2 :(得分:0)
我能想到的唯一方法就是使用eval。我不建议使用它,所以我把一个对象放在一起,这是一个非常接近和喜欢的对象。
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);