我有以下问题,任何帮助将不胜感激。假设我们有以下(n x 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”,“Monday”,“21:00”,
“蝙蝠侠升起”,“星期三”,“22:30”]
你知道我怎么能这样做吗? 非常感谢你!
答案 0 :(得分:0)
Movie
课程,其中包含三名成员:movieName
,day
,time
if (!set.add(movie)) { //duplicate
listOfDuplicates.add(movie);
}
之后,如果您愿意,可以随意将结果放回数组中。
答案 1 :(得分:-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;
}