2013-01-08 41 views
2

陣列可以添加到對象嗎?我已經定義了2個數組itemId和itemName,並在其中推入了一些值。這兩個數組可以被推送或是ItemCatalog對象的一部分嗎?數組可以添加到JavaScript中的對象嗎?

var ItemCatalog = new Object(); 

itemId = new Array(); 
itemName = new Array() 

/* 
var itemId = new Array(); 
var itemName = new Array(); 
*/ 
var currentItemIndex = 5; 

itemId.push(1); 
itemId.push(2); 
itemId.push(3); 
itemId.push(4); 
itemId.push(5); 
itemId.push(6); 
itemId.push(7); 
itemId.push(8); 
itemId.push(9); 
itemId.push(10); 

itemName.push("A"); 
itemName.push("B"); 
itemName.push("C"); 
itemName.push("D"); 
itemName.push("E"); 
itemName.push("F"); 
itemName.push("G"); 
itemName.push("H"); 
itemName.push("I"); 
itemName.push("J"); 

感謝, ANKIT

+0

ItemCatalog.Names = ITEMNAME; – AbdElRaheim

+0

這兩個數組推在哪裏? – ryadavilli

+0

我建議閱讀一些JavaScript教程,特別是[MDN - 使用對象](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects)。 –

回答

4

是的,你可以:

var itemId = [1,2,3,4,5,6,7,8,9,10]; 
var itemName = ["A","B","C","D","E","F","G","H","I","J"]; 

var currentItemIndex = 5; 

var ItemCatalog = { 
    itemIds: itemId, 
    itemNames: itemName 
}; 

另一種方式給變量賦值給你的對象是:

var ItemCatalog = {} 
// or like you did: var ItemCatalog = new Object(); That's the same as = {} 

// Then: 
ItemCatalog.itemIds = itemId; 
// Or 
ItemCatalog['itemNames'] = itemName; 

注意我是如何更換你的對象/數組initialisations與object/array文字。兩者都有效,但我更喜歡文字,因爲它們更短。

+0

itemId後的語法錯誤;應該將其更改爲itemId, – Anton

+0

@Anton:是的,謝謝! – Cerbrus

+0

Upvote也爲文字 –

1

var ItemCatalog = { 
    itemId : itemId, 
    itemName : itemName 
} 
0

您只需指定數組作爲對象的屬性的值,如:

// setup arrays here... 

var itemCatalog = { 
    itemId: itemId; 
    itemNames: itemName 
}; 

但是,如果idname是關聯的,爲什麼不添加他們我一個單一的數組?事情是這樣的:

items = []; 
items.push({ id: 1, name: 'A' }); 
items.push({ id: 2, name: 'B' }); 

console.log(items[0].name); // = A 
0

是的。繼續你已經發布的代碼:

ItemCatalog.itemId = itemId; 
ItemCatalog.itemName = itemName; 

但是,你可以在同一時間做這個作爲創建陣列,從而節省與不必要的變量搞亂電流範圍:

var ItemCatalog = new Object(); 

ItemCatalog.itemId = new Array(); 
ItemCatalog.itemName = new Array(); 

ItemCatalog.itemId.push(1); 
... 

ItemCatalog.itemName.push("A"); 
... 

注另外按照JavaScript中的慣例,以大寫字母開頭的名稱用於構造函數而不是對象。 (At least according to Douglas Crockford

所以這將是更慣用:

var itemCatalog = new Object(); 
相關問題