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",
    .          .         .
    .          .         .
    .          .         .]

每行由三个字符串表示。我想通过以下方式实现对公共行进行分组的算法。当算法启动时,它首先检查二维数组第一列中的所有值。然后,如果它在那里找到相同的值,它会继续第二列,但它只检查在第一步中具有相同值的行。之后,它以相同的动机继续第三列。最后,它给出了上述过程找到的行。例如,对于给定的数组,输出应该是:

[“Skyfall”,“星期一”,“21:00”,
“蝙蝠侠崛起”,“星期三”,“22:30”]

你知道我该怎么做吗?非常感谢你!

4

2 回答 2

0
  • 创建一个Movie包含三个成员的类:movieName, day,time
  • 将每部电影放在一个集合中并检查它是否是重复的,在这种情况下将其添加到重复列表中:
if (!set.add(movie)) { //duplicate
    listOfDuplicates.add(movie);
}

之后,如果您愿意,可以随意将结果放回数组中。

于 2012-11-29T18:45:55.047 回答
-1

这是我对如何完成它的看法 - http://jsfiddle.net/Pqkxz/1/

我必须遍历该对象两次,一次查看每个对象,第二次测试重复项。这是我用来测试重复的代码:

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 回答