2

配列をオブジェクトに追加できますか?2つの配列itemIdとitemNameを定義し、それらにいくつかの値をプッシュしました。これらの2つの配列をプッシュすることはできますか、それとも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が関連付けられている場合は、それらを1つの配列に追加してみませんか?このようなもの:

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 に答える