How to show differences between versions on an SPO list item?

%3CLINGO-SUB%20id%3D%22lingo-sub-3356125%22%20slang%3D%22en-US%22%3EHow%20to%20show%20differences%20between%20versions%20on%20an%20SPO%20list%20item%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-3356125%22%20slang%3D%22en-US%22%3E%3CP%3EThis%20is%20more%20of%20a%20Javascript%20coding%20issue%20rather%20than%20anything%20SharePoint%20specific.%3C%2FP%3E%3CP%3EI'm%20using%20the%20below%3A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-javascript%22%3E%3CCODE%3Econst%20deepDiff%20%3D%20(obj1%3A%20any%2C%20obj2%3A%20any)%3A%20any%20%3D%26gt%3B%20%7B%0A%20%20%20%20let%20difference%20%3D%20%7B%0A%0A%20%20%20%20%7D%3B%0A%20%20%20%20%2F%2F%20Implementation%0A%20%20%20%20return%20difference%3B%0A%7D%0A%0Aexport%20const%20GetVersionsForItem%20%3D%20async%20(listName%3A%20string%2C%20itemId%3A%20any)%20%3D%26gt%3B%20%7B%0A%0A%20%20%20%20const%20list%20%3D%20sp.web.lists.getByTitle(listName)%3B%0A%20%20%20%20list.items.getById(itemId).versions()%0A%20%20%20%20%20%20%20%20.then(versions%20%3D%26gt%3B%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20console.log(versions%2C%20'versions')%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20versions.map((current%2C%20i)%20%3D%26gt%3B%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20i%20%3D%3D%3D%200%20%3F%20current%20%3A%20deepDiff(current%2C%20versions%5Bi%20-%201%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D)%0A%20%20%20%20%20%20%20%20.then(changes%20%3D%26gt%3B%20console.log(changes%2C%20'changes'))%3B%0A%7D%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EThis%20gets%20all%20the%20versions%20of%20the%20SharePoint%20list%20item.%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20want%20to%20show%20the%20fields%20that%20are%20different.%20How%20would%20I%20do%20this%2C%20in%20the%20deepDiff%20function%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-3356125%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3Edifference%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ESharePoint%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Occasional Contributor

This is more of a Javascript coding issue rather than anything SharePoint specific.

I'm using the below:

const deepDiff = (obj1: any, obj2: any): any => {
    let difference = {

    };
    // Implementation
    return difference;
}

export const GetVersionsForItem = async (listName: string, itemId: any) => {

    const list = sp.web.lists.getByTitle(listName);
    list.items.getById(itemId).versions()
        .then(versions => {
            console.log(versions, 'versions');
            return versions.map((current, i) => {
                return i === 0 ? current : deepDiff(current, versions[i - 1])
            });
        })
        .then(changes => console.log(changes, 'changes'));
};

This gets all the versions of the SharePoint list item. 

 

I want to show the fields that are different. How would I do this, in the deepDiff function?

0 Replies