使用lodash,我創建了一個數組對,每個對都代表鏈接的源和目標。因此,對於一個鏈接給定路徑,我有:查找鏈接鏈的頭部
[ [a, b], [a, c], [d, c] ]
這是一個給定的第一個元素是在鏈中的第一個環節。 我原本想將這些對映射到鍵/值映射對象中,然後通過鍵和/或值來查找頭部。
簡化算法:
keys.contains(a) || values.contains(a)
如果任一爲真(不包括對本身,天然地),然後它不是頭。 因此,從第一對開始,keys.contains(a)|| values.contains(a)返回true,所以它不是頭部,而keys.contains(b)|| values.contains(b)返回false - 所以它必須是頭部。
問題:我無法將這些對映射到一個對象中,因爲可能存在互相重疊的鍵/值重複項。
即上面的例子中,生成的目標將是:
{
a: c,
d: c
}
我知道我可以通過他們循環,但是我不願意做這麼多的循環,除非我不得不...
更高效的解決方案的任何想法?
我真的不明白keys.contains(a)|| (a)暗示這一對是頭或不是。你能詳細說明什麼是「頭」,以及你如何使用contains()? – Glubus