[Demo] CheckBox Click When Disabled

[Demo] CheckBox Click When Disabled

by dying_sakura

JavaScript

const source = [
    {
        entryID: 1,
        entryName: "player1",
        weight: 1900,
        class: ['a', 'b'],

    },
    {
        entryID: 2,
        entryName: "player2",
        weight: 1900,
        class: ['a', 'b'],

    },
    {
        entryID: 3,
        entryName: "player3",
        weight: 1900,
        class: ['c', 'd'],

    },
    {
        entryID: 4,
        entryName: "player4",
        weight: 1900,
        class: ['c', 'd'],

    },

];

source.sort((a, b) => a.weight - b.weight);

const uniqueClass = source.reduce((prev, curr) => {
    if (!prev.find(p => p.class.every((pc, i) => pc === curr.class[i]))) {
        prev.push(curr);
        source.splice(source.findIndex(s => s.entryID === curr.entryID), 1);
    }
    return prev;
}, []);

const groupWeightWithUniqueClass = uniqueClass.reduce((prev, curr, i) => {
    const found = source.findIndex(s => s.weight === curr.weight && s.class.some((sc, i) => sc !== curr.class[i]));
    prev[`${i}_${curr.weight}_${curr.weight}`] = [curr, source[found]];
    source.splice(found, 1);
    return prev;
}, {});

console.log(uniqueClass);