替换JS数组中的字符串而不使用本机Replace()方法



我在js数组中替换字符串有点卡住了。我试图记录这些参数,看看发生了什么,但我错过了一块拼图。

小提琴

// - trying to look for substring in array 
// - if match is found 
// - replace substring without using the native method replace();
var div = $('.insert');
data = ["erf,", "erfeer,rf", "erfer"];
data = data.map(function (x) {
    return /""/g.test(x) ? x.replace(/""/g, "") : x
});
function fakeReplace(data, substr, newstr) {
//should show   ["erf,", "erfeer,rf", "erfer"];      
div.append("data before match replace = " + data);
    div.append("<br>");
    div.append("substr = " + substr);
    div.append("<br>");
    div.append("newstr = " + newstr);
    div.append("<br>");
    return data.split(substr).join(newstr);
}
fakeReplace(data, "erf", "blue");
//should show ["blue,", "blueeer,rf", "blueer"];
div.append("data after fakeReplace is executed = " + data);

您将data视为函数中的字符串。您可以使用map()返回一个新数组,其中每个元素都被替换。

function fakeReplace(data, substr, newstr) {
    return data.map(function(s) {
       return s.split(substr).join(newstr);
    })
}
      let myString = "Victor";
      let splitted = myString.split('');
      function replaceManual(a,b){
      for(let i = 0; i<= splitted.length-1; i++)
       {
          for(let j=i; j <=i;j++)
           {
             if(splitted[j]===a)
              {
                splitted[j]=b;
                return splitted;
              }
                else
              {
                break;
             }   
            }
          }
          }
   replaceManual('V','T');
   console.log(splitted.toString().replace(/[^ws]/gi, ''));

相关内容

最新更新