[SalesForce] force:createRecord – setting default values dynamically

I have a requirement where I need to set the defaultFieldValues dynamically (both field name & value). How can I achieve that?

var createRecordEvent = $A.get('e.force:createRecord');
if ( createRecordEvent ) {
    createRecordEvent.setParams({
        'entityApiName': 'Account',
        'defaultFieldValues': {
            'Name' : 'John',
            'XYZ__C' : '123',
        }
    });
    createRecordEvent.fire();
}

Best Answer

You can declare accounts as object. You can replace accounts values from your mapped object.

var accounts={ Name: 'John', XYZ__C : '123'};
var createRecordEvent = $A.get('e.force:createRecord');
if ( createRecordEvent ) {
    createRecordEvent.setParams({
        'entityApiName': 'Account',
        'defaultFieldValues': accounts
    });
    createRecordEvent.fire();
}