0

次の問題があり、助けていただければ幸いです。次の (nx 3) 配列があるとします。

["Skyfall", "Monday", "21:00",
 "Batman Rises", "Wednesday", "22:30",
 "Skyfall", "Tuesday", "23:00",
 "The Avengers", "Thursday", "22:45",
 "Skyfall", "Monday", "21:00"
 "Batman Rises", "Wednesday", "22:30",
 "Batman Rises", "Wednesday", "22:00",
    .          .         .
    .          .         .
    .          .         .]

各行は 3 つの文字列で表されます。次の方法で、共通の行をグループ化するアルゴリズムを実装したいと思います。アルゴリズムが開始されると、最初に 2 次元配列の最初の列のすべての値がチェックされます。そこで同じ値が見つかった場合は、2 番目の列に進みますが、最初のステップで同じ値を持つ行のみをチェックします。その後、同じ動機で第3コラムに続きます。最後に、上記の手順で見つかった行を示します。たとえば、指定された配列の出力は次のようになります。

[「スカイフォール」、「月曜日」、「21:00」、
「バットマン ライジング」、「水曜日」、「22:30」]

どうすればそれができるか考えていますか?どうもありがとうございました!

4

2 に答える 2

0
  • 、、Movieの 3 つのメンバーを持つクラスを作成します。movieNamedaytime
  • 各ムービーをセットに入れ、重複しているかどうかを確認します。重複している場合は、重複のリストに追加します。
if (!set.add(movie)) { //duplicate
    listOfDuplicates.add(movie);
}

その後、必要に応じて、結果を自由に配列に戻してください。

于 2012-11-29T18:45:55.047 に答える
-1

それを達成する方法についての私の見解は次のとおりです- http://jsfiddle.net/Pqkxz/1/

オブジェクトを 2 回ループする必要がありました。1 回目は各オブジェクトを確認するため、2 回目は重複をテストするためです。重複をテストするために使用したコードは次のとおりです。

function checkForDuplicate(title, row){
var dup = false;
var index = 0;
for (var movie in TheaterListing) {
   var obj = TheaterListing[movie];
    for (var prop in obj){
        if(prop == "Title" && index != row){ //if not current row
            if (obj[prop] == title) dup = true;            
        }
    }
    index++;
}
return dup;

}

于 2012-11-29T20:53:11.930 に答える