替换数组中的字符串

时间:2016-10-18 14:01:16

标签: javascript arrays string

我需要替换数组中的字符串。现在我正在使用%%timeit test = pd.DataFrame({'x': np.random.randn(int(1e6))}) test = test[test.x < 0] # 54.5 ms ± 2.02 ms per loop (mean ± std. dev. of 7 runs, 10 loops each) %%timeit test = pd.DataFrame({'x': np.random.randn(int(1e6))}) test.drop(test[test.x > 0].index, inplace=True) # 201 ms ± 17.9 ms per loop (mean ± std. dev. of 7 runs, 10 loops each) %%timeit test = pd.DataFrame({'x': np.random.randn(int(1e6))}) test = test.drop(test[test.x > 0].index) # 194 ms ± 7.03 ms per loop (mean ± std. dev. of 7 runs, 10 loops each) - 循环和forEach,这感觉不是很优雅:

switch

我想要的是用另一个字符串替换元素,或者如果没有匹配则使用原始字符串。

源数组有50个元素,替换数组有30个元素。

4 个答案:

答案 0 :(得分:1)

如果您希望对数组进行一对一操作,则首选.map函数:

return source.map(el => el === 'replace' ? 'with this' : el).join(',');

编辑我看到你已经更新了问题,实际上你有30个不同的字符串要替换。在这种情况下,您应该使用预先填充了“之前”和“之后”字符串的Map

let replaceFunc = (function() {

    let replace = new Map([
        ['replace', 'with this']
    ]);

    return source => source.map(el => replace.has(el) ? replace.get(el) : el).join(',');
 })();

IIFE用于确保Map的一次性初始化,并且在Map上关闭的返回函数被分配给replaceFunc

> replaceFunc(['replace']);
"with this"

答案 1 :(得分:1)

map是另一种选择

var result = source.map(function (e) {
    return e === 'replace' ? 'with this' : e;
});

答案 2 :(得分:1)

var sample = ["aaa", "bbb", "replaceMe", "ccc", "ddd"];
var result = sample.map(function(ele, inx) {
   if (ele == "replaceMe") {
      return "newText";
   } else {
      return ele;
   }
});
console.log(result);

答案 3 :(得分:0)

下面为替换示例示例: -

  String originalString = "hello";
  String newString = originalString.replace('E', 'x');
  System.out.println( newString );

立即参考 - http://javadevnotes.com/java-string-replace-tutorial-and-examples