Reputation: 33
I'm trying to replace values from an array which are present in a string with another array. What is the best way to do this in Javascript? here is my code :
var string = "I've to but the Item1 along with Item2 and Item3. From the Item4."
var array1 = ['Item1', 'Item2', 'Item3', 'Item4']
var array2 = ['Product1', 'Product2', 'Product3', 'Product4']
and output should be like this
var replaced = "I've to but the Product1 along with Product2 and Product3. From the Product4."
every value in both arrays is completely different from each other.
Upvotes: 0
Views: 1220
Reputation: 3589
I hope I have been helpful.
var array1 = ['Item1', 'Item2', 'Item3', 'Item4'];
var array2 = ['Product1', 'Product2', 'Product3', 'Product4'];
var string = "I've to but the Item1 along with Item2 and Item3. From the Item4.";
for (var i = 0; i < array1.length; i++) {
var string = string.replace(array1[i], array2[i]);
}
console.log(string);
Upvotes: 1
Reputation: 138
You can use template literal for e.g.
var array1 = [Item1, Item2, Item3, Item4];
var array2 = [Product1, Product2, Product3, Product4]
var string = `I've to but the ${array1[0]} along with ${array1[1]} and ${array1[2]}. From the
${array1[3]}.`
var replaced = `I've to but the ${array2[0]} along with ${array2[1]} and ${array2[2]}.
From the ${array2[3]}.`
Upvotes: 0
Reputation: 10193
You can replace the string using String.prototype.replaceAll
const input = "I've to but the Item1 along with Item2 and Item3. From the Item4.";
const original = ['Item1', 'Item2', 'Item3', 'Item4'];
const target = ['Product1', 'Product2', 'Product3', 'Product4'];
let result = input;
original.forEach((item, index) => {
result = result.replaceAll(item, target[index]);
});
console.log(result);
Upvotes: 1