Я бы сконструировал регулярное выражение, чередуя все ключи объекта, а затем использовал бы функцию заменителя для поиска значения замены:
const object = {
"transfer-money-from-": "hui-kuan-cong-",
"aruba": "a-lu-ba",
"australia": "ao-da-li-ya",
"azerbaijan": "a-sai-bai-jiang",
"to": "zhi"
};
const re = new RegExp(Object.keys(object).join('|'), 'g');
const url = "/en/transfer-money-from-azerbaijan-to-australia";
const output = url.replace(re, match => object[match]);
console.log(output);
Чтобы сделать это наоборот, просто переключите ключи и значения объекта:
const object = {
"transfer-money-from-": "hui-kuan-cong-",
"aruba": "a-lu-ba",
"australia": "ao-da-li-ya",
"azerbaijan": "a-sai-bai-jiang",
"to": "zhi"
};
const switchedObj = Object.fromEntries(
Object.entries(object).map(
([key, val]) => [val, key]
)
);
const re = new RegExp(Object.keys(switchedObj).join('|'), 'g');
const url = "/en/hui-kuan-cong-a-sai-bai-jiang-zhi-ao-da-li-ya";
const output = url.replace(re, match => switchedObj[match]);
console.log(output);