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 个值。

我不知道如何实现这一点任何帮助?

4

3 回答 3

1

在全球范围内,您可以执行以下操作:

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

在任意范围内,这仅在非严格评估下才有可能:

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 垫片
映射垫片

于 2012-05-18T17:34:00.867 回答
0
var arrayOfArrays = [];
for (var i = 0; i < arr.length; i++) {
    arrayOfArrays[i] = [];
    arrayOfArrays[i].push(arr[i]); 
}
于 2012-05-18T17:26:02.433 回答
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);
于 2012-05-18T17:33:40.597 回答