JSFiddle - React, Tailwind, and code Playground

JavaScript

function unique(arr) {
        var comparer = function compareObject(a, b) {
            if (a.title == b.title) {
                if (a.artist < b.artist) {
                    return -1;
                } else if (a.artist > b.artist) {
                    return 1;
                } else {
                    return 0;
                }
            } else {
                if (a.title < b.title) {
                    return -1;
                } else {
                    return 1;
                }
            }
        }

        arr.sort(comparer);
        console.log("Sorted: " + JSON.stringify(arr));
        var end;
        for (var i = 0; i < arr.length - 1; ++i) {
            if (comparer(arr[i], arr[i+1]) === 0) {
                arr.splice(i, 1);
                console.log("Splicing: " + JSON.stringify(arr));
            }
        }
        return arr;
    }
            
var test = [{title: "foo", artist: "bar"}, {title: "foo", artist: "foo"}, {title: "bar", artist: "bar"}, {title: "foo", artist: "bar"}];
console.log(JSON.stringify(unique(test)));