我有一个类似于以下的对象数组:
var routeArr = [
{start: 1, end: 2},
{start: 1, end: 3},
{start: 1, end: 4},
{start: 2, end: 1},
{start: 3, end: 1},
{start: 4, end: 1}
];
这些对象表示线的起点和终点,因此,
{start: 1, end: 2}
和 {start: 2, end: 1}
表示同一条线。我正在尝试从数组中删除所有重复的线,但找不到有效或优雅的方法。我尝试了嵌套循环,但被告知这是不好的做法(我的实现也出现了错误,而且很丑)。
for(var i = 0, numRoutes = routeArr.length; i < numRoutes; i++) {
var primaryRoute = routeArr[i];
for(var j = 0; j < numRoutes; j++) {
var secondRoute = routeArr[j];
if(primaryRoute.start === secondRoute.end && primaryRoute.end === secondRoute.start) {
routeArr.splice(j, 1);
continue;
}
}
}
有人可以提供建议吗?