Javascript - 从数组中替换重复的字符串

1 javascript

我希望我的Javascript用字符串来做...

找到"aaa"的第一个实例并将其替换为"xxx".找到"aaa"的第二个实例,并将其替换为"yyy".找到"aaa"的第三个实例并将其替换为"zzz".

...并继续这样做,直到它不再在该字符串中找到"aaa".

例如,这个字符串......

HELLO aaa WORLD aaa HERE aaa IS aaa SOME aaa RANDOM aaa TEXT aaa FOR aaa TESTING aaa
Run Code Online (Sandbox Code Playgroud)

......将成为这个字符串......

HELLO xxx WORLD yyy HERE zzz IS xxx SOME yyy RANDOM zzz TEXT xxx FOR yyy TESTING zzz
Run Code Online (Sandbox Code Playgroud)

我已经谷歌搜索关于Javascript替换,数组,循环等的地狱,但我尝试过的一切都没有成功.来自任何Javascript编码器的任何想法?

顺便说一句,我不是一个jQuery用户.所以任何依赖jQuery的代码都不会对我有用.

Nin*_*olz 6

您可以使用替换函数String#replace并将数组作为参数以及替换的起始索引.

function replaceWith(array, i) {
    i = i || 0;
    return function () {
        i %= array.length;
        return array[i++];
    }
}

var string = 'HELLO aaa WORLD aaa HERE aaa IS aaa SOME aaa RANDOM aaa TEXT aaa FOR aaa TESTING aaa';

string = string.replace(/aaa/g, replaceWith(['xxx', 'yyy', 'zzz']));

console.log(string);
Run Code Online (Sandbox Code Playgroud)