0

私はJavaScriptのような配列を1つ持っています

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];
});

任意のスコープ内では、厳密でない 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 シム
マップ シム

于 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 に答える