我正在 codewars.com 上练习编码。
我碰到这个问题 https://www.codewars.com/kata/5899a4b1a6648906fe000113/train/javascript:
我们正在追踪我们的流氓特工马修·奈特(又名马修·奈特)罗伊·米勒
他从一个地方旅行到另一个地方以避免被追踪。每一个
他的旅行基于不寻常或不寻常的行程清单
顺序错误。任务是确定他将采取的路线
他的每一次旅程。给你一系列他的路线
行程。只列出他将正确去的地方
根据他的行程安排。
示例:路线=[[USA, BRA], [JPN, PHL], [BRA, UAE], [UAE, JPN]]
result: "USA, BRA, UAE, JPN, PHL"
我尝试过以下代码:
function findRoutes(routes) {
let newArr = Array.prototype.concat.apply([], routes)
let unique = newArr.filter((v, i, a) => a.indexOf(v) === i);
return unique.join(', ');
}
console.log(findRoutes([["USA","BRA"],["JPN","PHL"],["BRA","UAE"],["UAE","JPN"]]))
它只适用于给定的情况,但当我尝试另一个测试案例时:
[["Chicago", "Winnipeg"], ["Halifax", "Montreal"], ["Montreal", "Toronto"], ["Toronto", "Chicago"], ["Winnipeg", "Seattle"]]
如果失败的话……所以我知道出了问题,因为动作应该是有秩序的。
我很乐意改进它或从不同的想法重写。