JSFiddle - React, Tailwind, and code Playground

by mendelthecoder

JavaScript

function a(b, c, d, e, f, g, h) {
    h = [];
    c = e = f = 0;
    for (i in b) {
        for (j in b) {
            for (k in b[i]) {

                if (b[i][k] == b[j][k]) {

                    if (c + f < 4) c++;
                    else if (c == 4) {
                        h += b[j];
                        if (h.length = 3) return h
                    }
                } else {
                    for (l in d) {
                        for (m in d[l]) {
                            g = f;
                            if (d[l][2] == i) {
                                if (d[l][3] == k) if (b[j][k] != d[l][0] && b[j][k] != d[l][1]) f++;
                            } else {
                                continue
                            }
                        }
                        if (g == f) d[e++] = [b[i][k], b[j][k], j, k]
                    }
                }
            }
        }
    }
}

console.log(a([{
    "a": 1,
        "b": 2,
        "c": 3,
        "d": 4
}, {
    "a": 2,
        "b": 3,
        "c": 4,
        "d": 1
}, {
    "a": 3,
        "b": 4,
        "c": 1,
        "d": 2
}]));