2013-01-08 38 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(); 
相关问题