2

可以将数组添加到对象吗?我已经定义了 2 个数组 itemId 和 itemName 并在其中推送了一些值。这两个数组可以被推送或成为 ItemCatalog 对象的一部分吗?

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");

谢谢, 安基特

4

4 回答 4

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;

请注意我如何用对象/数组文字替换您的对象/数组初始化。两者都有效,但我更喜欢文字,因为它们更短。

于 2013-01-08T12:36:37.313 回答
1

是的

var ItemCatalog = {
    itemId : itemId,
    itemName : itemName 
}
于 2013-01-08T12:35:52.760 回答
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
于 2013-01-08T12:35:54.913 回答
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 的约定,以大写字母开头的名称用于构造函数而不是对象。(至少根据道格拉斯·克罗克福德的说法。)

所以这会更惯用:

var itemCatalog = new Object();
于 2013-01-08T12:38:10.177 回答