jquery 用数组Map替换单词

ctrmrzij  于 2023-06-22  发布在  jQuery
关注(0)|答案(2)|浏览(111)

我有这个数组
(2)['beginning= beginner','leaves=leave']
这根弦
它的初学者在声音离开
我已经把它转换成数组了

var words = text.split(' ');

我想用beginning替换beginner,用leaves替换leave它可以是任何动态字,但现在它只有两个元素,我可以在for循环中替换它。用map方法可以吗。

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

注意:只有第一个示例应该被替换。
任何解决方案谢谢

sshcrbum

sshcrbum1#

这对你的问题正确吗?

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"
yhived7q

yhived7q2#

如果你在空间上妥协的话,你也可以在没有嵌套循环的情况下这样做。
下面是一个解决方案,它为替换值创建一个Map对象,并使用数组方法(如map()forEach()join())和字符串方法(如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);

相关问题