JSFiddle - React, Tailwind, and code Playground

JavaScript

var data = [{
    thumb: '/images/01.png',
    title: 'My title',
},{
    thumb: '/images/02.png',
    title: 'My title',
},{
    thumb: '/images/03.png',
    title: 'My title',
}];

var newData = replaceAttrName(data, {thumb: 'thumbnail'});
console.log(newData);
    
    
    
function replaceAttrName(sourceObj, replaceList, destObj) {
    destObj = destObj || {};
    for(var prop in sourceObj) {
        if(sourceObj.hasOwnProperty(prop)) {
            if(typeof sourceObj[prop] === 'object') {
                if(replaceList[prop]) {
                    var strName = replaceList[prop];
                    destObj[strName] = {};
                    replaceAttrName(sourceObj[prop], replaceList, destObj[strName]);
                } else if(!replaceList[prop]) {
                    destObj[prop] = {};
                    replaceAttrName(sourceObj[prop], replaceList, destObj[prop]);
                }
            } else if (typeof sourceObj[prop] != 'object') {
                if(replaceList[prop]) {
                    var strName = replaceList[prop];
                    destObj[strName] = sourceObj[prop];
                } else if(!replaceList[prop]) {
                    destObj[prop] = sourceObj[prop];
                }
            }
        }
    } 
    return destObj;
}