1

現在、テキストアドベンチャーを作成中です。あるアイテムを持っていると、ゲーム内のヒントと交換できる機能を実装しています。正しいヒントが表示されるように、アイテムのバックパックを検索する方法を理解するのに苦労しています.

声明は次のとおりです。

case "drift wood":
case "soda can":
    case "shell":
        case "fork":
if(mapLocation === 9)
{
    gameMessage = "Weren't there some loose planks in that sunken ship?";

    backpack.splice(backpackIndexNumber, 1);
}
else if(mapLocation === 9)
{
    gameMessage = "That trench sure was dark.";

    backpack.splice(backpackIndexNumber, 1);
}
else if(mapLocation === 9)
{
    gameMessage = "That loose sand on the beach sure looks like fun to dig into.";
    backpack.splice(backpackIndexNumber, 1);
}
else if(mapLocation === 9)
{
    gameMessage = "A treasure chest needs unlocking.";
    backpack.splice(backpackIndexNumber, 1);
}
break;

最初の if(mapLocation === 9) では、「あの沈没船には緩い板がいくつかありませんでしたか?」を取得するために、バックパックでバールを検索するプログラムが必要です。メッセージ。

私のバックパック変数はこれです:

var backpack = [];
4

1 に答える 1

1

バックパックの配列に文字列 "crowbar" だけが含まれている場合は、次のようにします。

hasCrowbar = backpack.indexOf("crowbar") > -1;

一方、バックパックに次のようなオブジェクトが含まれている場合:

var backpackObj = [ 
    {
      item: "thing1",
      weight: 10
    }, 
    {
      item: "crowbar",
      weight: 20
    }
  ];

次に、lodash を使用して、次のように確認します。

hasCrowbarObj = _.filter(backpackObj, function(b){
  return b.item === "crowbar";
}).length > 0;

ここにjsfiddleがあります:

https://jsfiddle.net/mckinleymedia/uf74d9sb/1/

于 2015-12-17T05:22:54.147 に答える