JavaScript屬性不鍵入像他們在C所以沒有純粹以JavaScript「等效」的表達。您不會像C代碼那樣預先聲明類型化的數據結構。我給變量或JavaScript中的屬性可以分配任何值或引用 - 沒有很難打字。因此,如果沒有隻包含特定類型的變量(如C),則不會像C中包含的那樣預先聲明數據結構定義。
相反,您只需聲明要在活動對象上使用的屬性或如果你打算使用它們中的很多,你可以創建一個你可以在需要時實例化的原型。
活對象實例有點像你的最後結構的直接聲明是這樣的:
var my = {
number: 10,
tmp: new Array(100),
tmp2: new Array(100)
};
這將宣佈名爲my
一個對象,有三個屬性稱爲number
,tmp
和tmp2
。 number
初始包含數10
和其他兩個屬性包含長度爲100誰是值分別爲undefined
的陣列。我不知道任何緊湊的方式來預定義JavaScript中的二維數組,而無需在循環中運行代碼來初始化它。
該數據確定指標將讓您訪問my.number
,my.tmp
等。
如果你希望你的數組包含自己,那麼你需要填充的對象這些陣列屬性的對象。
var my = {
number: 10,
tmp: [{a: 1, c_str: "foo"}, {a: 2, c_str: "whatever"}],
tmp2: new Array(100)
};
或者,在代碼中,你可以在項目的TMP陣列代碼添加這樣的:
var my = {
number: 10,
tmp: [],
tmp2: []
};
my.tmp.push({a: 1, c_str: "foo"});
my.tmp.push({a: 2, c_str: "whatever"});
或者,您可以單獨創建對象,然後把它在數組中:
var obj = {}; // new empty object
obj.a = 1; // assign property
obj.c_str = "foo"; // assign property
my.tmp.push(obj); // put object into the array
obj = {}; // new empty bject
obj.a = 2;
obj.c_str = "whatever";
my.tmp.push(obj);
或者,你可以每個屬性單獨分配是這樣的:
my.tmp.push({}); // put empty object into the array
my.tmp[0].a = 1; // assign property to the object
my.tmp[0].c_str = "foo"; // assign property to the object
my.tmp.push({});
my.tmp[1].a = 2;
my.tmp[1].c_str = "whatever";
在這兩種情況下,你可以再訪問這些數據是這樣的:
console.log(my.tmp[0].a); // 1
console.log(my.tmp[0].c_str); // "foo"
這還不怎麼這個網站的工作。嘗試一下,我們將幫助解決您的問題。但現在這只是「給我codez」。 –
我不明白這是如何與JSON相關的。我建議你閱讀[MDN - 使用對象(https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects)。 –