2014-03-26 34 views
2

我在javascript中構建一個對象來動態存儲數據。將對象字段與javascript中的變量連接起來

這裏是我的代碼:

var id=0; 
function(pName, pPrice) { 
    var name = pName; 
    var price = pPrice; 
    var myObj = { 
     id:{ 
      'name':name, 
      'price':price 
     }, 
    }; 
    (id++); // 
    console.log(myObj.id.name); // Acessing specific data 
} 

我希望我的id場由id變量值進行定義,因此會造成我的每一個函數被調用時一個新的領域。但我沒有找到任何解決方案來連接兩者。

謝謝

回答

1

您可以使用方括號語法創建並訪問動態命名的字段:

var myObj = {}; 
myObj['id_'+id] = { 
    'name':name, 
    'price':price 
} 
0

這是你想要的嗎?

var myObj = {}; 
myObj[id] = { 
    'name':name, 
    'price':price 
}; 

console.log(myObj[id]name); // Acessing specific data 
0

可以使用[]定義特定對象的動態特性(MyObj中),像

var myObj = {}; 
myObj[id] = {'nom':nom, 'prix':prix}; 

function userDetail(id, nom, prix) { 
    var myObj = {}; 
    myObj[id] = {'nom':nom, 'prix':prix}; 
    return myObj; 
} 

var objA = userDetail('id1', 'sam', 2000); 
var objB = userDetail('id2', 'ram', 12000); 
var objC = userDetail('id3', 'honk', 22000); 

console.log(objA.id1.nom); // prints sam 
console.log(objB.id2.nom); // prints ram 
console.log(objC.id3.prix);// prints 22000 

[DEMO]