もうすぐですが、この機能を計画どおりに実行できないようです。
keyArrayとValArrayの2つの配列があります。
私がやろうとしているのは、関数に2つの引数(keyArr、valArr)を渡させることです。この関数内で、親オブジェクトが宣言され、(forループ)が渡された引数の長さ(この場合は「keyArr」)をループして、渡された引数の長さに応じて新しいオブジェクトを作成します。次に、新しく作成されたオブジェクトにキーと値が割り当てられます。
問題は、親オブジェクト「mObj」と子オブジェクトを「mObj」に作成できますが、キーと値を最初の子オブジェクト「obj0」にしか割り当てることができず、残りの子オブジェクトを正しく作成できないことです。コードの最後に、これが私が取得したいものです:
enter code heremObj.obj0.firstname = John;
mObj.obj0.lastname = superfly;
mObj.obj0.email = "john.superfly@yahoo.com";
mObj.obj1.firstname = John;
mObj.obj1.lastname = superfly;
mObj.obj1.email = "john.superfly@yahoo.com";
mObj.obj2.firstname = John;
mObj.obj2.lastname = superfly;
mObj.obj2.email = "john.superfly@yahoo.com";
これは私のコードです:
var keyArr = ["firstname","lastname","email"];
var valArr = ["John","Superfly","jsuperfly@yahoo.com"];
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);
これについての洞察をいただければ幸いです。ありがとうございました。