我幾乎在這裏,但似乎無法按計劃得到此功能。創建動態對象到父對象並分配鍵和值?
我有兩個數組:keyArray和ValArray;
我想要做的是讓函數傳遞兩個參數(keyArr,valArr)。在這個函數中,一個父對象被聲明並且一個(for-loop)循環參數的長度(在本例中爲「keyArr」)根據傳入參數的長度創建新對象。然後,爲新創建的對象分配鍵和值。
問題是我能夠創建父對象「mObj」,並將子對象創建爲「mObj」,但我只能將鍵和值分配給第一個子對象「obj0」而不是其餘的子對象對象正確。在代碼的結束,這是我想獲得:
enter code heremObj.obj0.firstname = John;
mObj.obj0.lastname = superfly;
mObj.obj0.email = "[email protected]";
mObj.obj1.firstname = John;
mObj.obj1.lastname = superfly;
mObj.obj1.email = "[email protected]";
mObj.obj2.firstname = John;
mObj.obj2.lastname = superfly;
mObj.obj2.email = "[email protected]";
這是我的代碼:
var keyArr = ["firstname","lastname","email"];
var valArr = ["John","Superfly","[email protected]"];
function test(keys,vals) // FUNCTION TEST ACCEPTS TWO ARGS
{
var mObj = {}; // PARENT OBJECT
var len = (keys.length); //ARGUMENT KEY'S LENGTH
for(var i=0; i<len; i++)
{
mObj["obj" + i] = {}; //CHILDREN OBJECTS ARE CREATED TO PARENT "mObj" OBJECT
mObj["obj" + i][keys[i]] = vals[i]; //KEYS AND VALUES ARE ASSIGNED HERE
}
alert(mObj.obj1.firstname); // CURRENTLY RETURNS "UNDEFINED"
}
test(keyArr,valArr);
任何深入瞭解這會非常可以理解的。 謝謝。
我從你的代碼中得不到的是你最終得到3組相同的數據。我根本看不到製作3套的限制。 – Joseph 2012-04-19 21:25:09