1

今日は JavaScript を使って配列を掘り下げます。2 つの配列を作成しました

    var items = ['Bread', 'Milk', 'Butter']
    var calories = [10,20,30]

カロリーは品物に対応しているので、パンは10カロリーという考え方です。結果を組み合わせた 2 つの配列を見たい場合は、これを呼び出します。

   document.writeln(items[1] +  calories[1])

これを行うためのはるかに効率的な方法があると思いますが、初心者として、正しい方向への指針をいただければ幸いです。理想的には、すべての情報を 1 つの配列に格納したい

4

6 に答える 6

10

1 つの方法は、配列の代わりにオブジェクトを使用することです。

var items = {
   Bread: 10, 
   Milk: 20, 
   Butter: 30
};

alert(items["Bread"]); // Alert 10

MDN には、JavaScript でのオブジェクトの操作に関する有益な記事があります。

于 2012-10-29T12:39:02.197 に答える
4

オブジェクトの配列を使用できます。

var items = [
   {Bread: 10},
   {Milk:20}
];

または単にオブジェクト

var items {
    Bread:10,
    Milk:20
}

Key-Value アプローチを使用してパンのカロリーを出力するには:

   alert(items["Bread"]);

アイテム名を「キー」として使用したくない場合は、次のようにすることができます。

var items = [
   {
    Item: "Bread", 
    Calories: 10
   },
   {
    Item: "Milk", 
    Calories: 20
   }
];

次に、次のように印刷できます。

alert(items[0].Item+" has "+items[0].Calories+" calories");

次に、要素を追加する場合:

items.push({Item:"Butter",Calories:30});
于 2012-10-29T12:38:29.500 に答える
0

はい、誰もが言うように、オブジェクトは必要なものです。実際の出力を取得するには:

var items = {
   'Bread' : 10, 
   'Milk', : 20, 
   'Butter' : 30
};
for (var name in items)
{//loop through object literal, list all properties
    if (items.hasOwnProperty(name))
    {//avoid output of prototype properties
        document.writeln(name + ': ' + items[name]);
    }
}
//output:
    Bread: 10
    Milk: 20
    Butter: 30
于 2012-10-29T12:46:31.910 に答える
0

「より効率的」とはどういう意味かはよくわかりませんが、このようなものはモデル化したいようなものです:

var items = {
  'Bread': 10,
  'Milk': 20,
  'Butter': 30
};
于 2012-10-29T12:39:56.800 に答える
0

ハッシュテーブル/辞書はどうですか?

var calories = { Bread: 10,  Milk: 20, Butter: 30 };

このオブジェクトから目的の出力を得るには、私の (Elias Van Ootegem) の回答を確認してください。
または「オブジェクト」:

var food = [ 
     { name: 'Bread', calories: 10 },
     { name: 'Milk', calories: 20 },
     { name: 'Butter', calories: 30 },
];

ここで出力を取得するには:

for (var i=0;i<food.length;i++)
{
    document.writeln(food[i].name +': '+food[i].calories);
}
于 2012-10-29T12:40:23.480 に答える
0

おそらくオブジェクト リテラルを探しているでしょう。出力を次のようにしたいとします。

var items = {
    Bread: 10,
    Milk : 20
};

次のように、配列をループして、最初は空の配列を埋めることができます。

var items = {}, food, calories;

food = ['Bread', 'Milk', 'Butter'];
calories = [10,20,30];

for (var i = 0; i < food.length; i++) {
    for (var l = 0; l < calories.length; l++) {
        items[ food[i] ] = calories[ l ];
    }
}
于 2012-10-29T12:42:13.340 に答える