2015-08-13 23 views
-5

我想創建一個對象並在其中添加一些值。創建對象並在javascript中訪問它

這裏是我的嘗試:

var myObj = {}; var part = []; 

// I tried to put a value but this is not working 
myObj[0].part.name = "A name"; 

我需要的就是這樣的一個對象,並能夠訪問其值:

我的問題是:

  1. 如何訪問值?
  2. 如何設置其中的值?例如我怎樣才能在myaccount中設置一個值?

代碼:

var myObject = '{ 
    "part" : 
    [ { 
     "name":"John" , 
     "myAccounts" : [account0, account2, account3, account4], 
     "lastName":"Doe", 
     "age":"35" 
     }, 

     { 
     "name":"kate" , 
     "myAccounts" : [accountA, accountB], 
     "lastName":"jobs", 
     "age":"35" 
    }, 
    ] 
}; 
+1

這可能會幫助你。 HTTP://計算器。com/questions/383692/what-is-json-and-why-would-i-use-it – WhiteHat

+6

從一個基本的javascript教程開始。你似乎首先開始潛水,而不是從一開始就開始,並降低你的基礎。 – csmckelvey

+0

像@Takendarkk說。我認爲你需要閱讀什麼JS對象以及如何使用它們。這是基本的東西。 – evolutionxbox

回答

1

你有一些格式問題(如領先的單引號,帳戶沒有「對象」,尾隨逗號現在,如果我們解決這些並訪問部分陣列我們可以做這樣的:

var myObject = { 
    "part": [{ 
     "name": "John", 
      "myAccounts": ["account0","account2", "account3", "account4"], 
      "lastName": "Doe", 
      "age": "35" 
    }, { 
     "name": "kate", 
      "myAccounts": ["accountA", "accountB"], 
      "lastName": "jobs", 
      "age": "35" 
    }] 
}; 

alert(myObject.part[0].name + " has " +myObject.part[0].myAccounts[0]); 

現在,如果我們把這些賬目對象的數組,我們可以像這樣進行更新:

var myObject = { 
    "part": [{ 
     "name": "John", 
      "myAccounts": [{"account0": {}}, 
          {"account2": {}}, 
          {"account3": {}}, 
          {"account4": {}}], 
      "lastName": "Doe", 
      "age": "35" 
    }, { 
     "name": "kate", 
      "myAccounts": [{"accountA": {}}, 
          {"accountB": {}}], 
      "lastName": "jobs", 
      "age": "35" 
    }] 
}; 

alert(myObject.part[0].name + " has " + myObject.part[0].myAccounts[0]); 
myObject.part[0].myAccounts[0] = "first one"; 
alert(myObject.part[0].name + " has " + myObject.part[0].myAccounts[0]); 
+0

你好,感謝您的快速答案,但如何我可以爲一個字段設置值,例如:myObj [0] .part.name =「A name」;謝謝 – Franck

+0

你的對象不是數組,你的部件是這樣給出的:'myObject.part [0] .name =「Fred」;' –

+0

嗨@ Mark-schultheiss我試過你給定的代碼myObject.part [0] .name =「弗雷德」,但它不工作... – Franck

0

在JavaScript中,你可以使用:

  • 對象初始化器來創建一個文本對象:var obj = {};
  • 稱爲構造:var obj = new myObject();

構造

通過調用構造函數,您將通過使用JavaScript new創建該對象的一個​​實例關鍵字。

如果你這樣做var foo = new Foo();foo成爲Foo()函數的一個實例,並且該值this將把我們的變量foo

所以:

function myObj(){ 
    //It's a member of myObj 
    this.part = []; 

    this.sayHello = function(){ 
     console.log('Hello'); 
    } 
    } 

    //Create an instance of myObj 
    var obj = new myObj(); 

    //Create another instance of myObj 
    var obj2 = new myObj(); 

    var data = { 
    name: 'toto', 
    myAccount: [1, 2, 3] 
    }; 

    var data2 = { 
    name: 'titi', 
    myAccount: [1, 2, 3] 
    }; 

    //Access to part member and push it an object 
    obj.part.push(data); 
    obj2.part.push(data2); 

    //Add a value to the myAccount array 
    obj.part[0].myAccount.push(5); 

    console.log(obj.part[0].myAccount[0]); 
    //Print '1' 


    console.log(obj.part[0].name); 
    //Print 'toto' 

    console.log(obj2.part[0].name); 
    //Print 'titi' 

    obj.sayHello(); 
    //Print 'Hello' 

你可以看到,objobj2不具有相同的名稱,因爲它是不一樣的實例。

文字

當你創造出一個文本對象,添加屬性和方法給它,所有這些屬性和方法都是公開的。對象文字很有用,因爲它們允許您創建乾淨的代碼。

//Create your object 
    var obj = { 
    part: [], 
    function: function(){ 
     console.log('Hello'); 
    } 
    }; 


    var data = { 
    name: 'toto', 
    myAccount: [1, 2, 3] 
    }; 

    //Access to part member and push it an object 
    obj.part.push(data); 

    //Add a value to the myAccount array 
    obj.part[0].myAccount.push(5); 

    console.log(obj.part[0].myAccount[0]); 
    //Print '1' 

    obj.function(); 
    //Print 'Hello' 

你可以在這裏看到,只有對象的聲明發生了變化。