可以将数组添加到对象吗?我已经定义了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");
谢谢, ANKIT
答案 0 :(得分: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;
请注意我是如何使用 object / array文字替换您的对象/数组初始化。两者都有效,但我更喜欢文字,因为它们更短。
答案 1 :(得分:1)
是
var ItemCatalog = {
itemId : itemId,
itemName : itemName
}
答案 2 :(得分:0)
您可以将数组指定为对象属性的值,如下所示:
// setup arrays here...
var itemCatalog = {
itemId: itemId;
itemNames: itemName
};
但是,如果id
和name
相关联,为什么不将它们添加到单个数组中?像这样:
items = [];
items.push({ id: 1, name: 'A' });
items.push({ id: 2, name: 'B' });
console.log(items[0].name); // = A
答案 3 :(得分: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();