Home > Software engineering >  Replace words with array map
Replace words with array map

Time:03-20

I have this array

(2) ['beginning=beginner', 'leaves=leave']

and this string

its beginner in the sounds leave

which i have converted to an array

var words = text.split(' ');

i want to replace beginner with beginning and leave with leaves it can be any dynamic words but for now it has only two elements i can replace it within for loop. Is it possible with map method.

this.words.map((words, i) => console.log(words));

Note: Only first instance should get replaced.

Any Solution Thanks

CodePudding user response:

does this correct with your question ?

const arrString = ["beginning=beginner", "leaves=leave", "sound=sounds"];

let string = "its beginner in the sounds leave";

arrString.forEach((mapString) => {
  const stringArr = mapString.split("=");
  string = string.replace(stringArr[1], stringArr[0]);
});

console.log("string", string);
// "its beginning in the sound leaves"

CodePudding user response:

You can do it in without a nested loop too if you compromise with space.

Here is a solution which creates a mapping object for replacement values and uses array methods like map(),forEach(),join() and string method like split()

const arrString = ["beginning=beginner", "leaves=leave", "sound=sounds"];

let string1 = "its beginner in the sounds leave beginner";
const replaceObj = {};
const arrBreaks = arrString.forEach(x => {
let els = x.split("=");
replaceObj[els[1]] = els[0]; });

const ans = string1.split(' ').map((x) => {
  if(x in replaceObj) { let val = replaceObj[x]; delete val; return val; }
  return x;
}).join(' ');

console.log(ans);

  • Related