【问题标题】:Replace and Rearrange string in javascript在javascript中替换和重新排列字符串
【发布时间】:2017-12-08 13:48:20
【问题描述】:

我有一个输入字符串

this.name in ['Sachin','Rahul','Anil']

如果我在上面的字符串中找到“in”,我需要将其替换如下

['Sachin','Rahul','Anil'].indexOf(this.name) > -1

同样,如果我有一个包含 not in 的输入字符串

this.name not in ['Sachin','Rahul','Anil']

如果找到“不在”,我需要将其替换为

['Sachin','Rahul','Anil'].indexOf(this.name)  < 0

是否有可能在 javascript 中实现这一点?

【问题讨论】:

  • 我不明白这个问题。您期望的输出是什么?
  • I need to replace this as below,你没有替换任何东西。您正在测试名称是否在数组中。
  • 您的伪代码没有正确解释您正在尝试做什么
  • 你想开发一门需要JS引擎解析执行的语言?
  • @gurvinder372 看起来像 Coffeescript

标签: javascript rule-engine


【解决方案1】:

我了解到您想将关键字 in 转换为您编写的内容,并添加一个与该表达式相对应的 not 关键字。

所以...如果不使用一些字符串解析技术,您无法在纯浏览器 js 中实现它。 但是你可以继续使用转译器(可以在 js 中编程),例如 babel。在谷歌你想搜索阶段“transpiling custom js”。 Some article using babel

【讨论】:

    【解决方案2】:

    测试是否存在并替换

    var theArray = ['Sachin', 'Rahul', 'Anil'];
    var searchForName = 'Rahul';
    var indexOfName = theArray.indexOf(searchForName);
    if (indexOfName > -1) {
       theArray[indexOfName] = 'Sahil'; // gives ['Sachin', 'Sahil', 'Anil']
    }
    

    删除

    var theArray = ['Sachin', 'Rahul', 'Anil'];
    var searchForName = 'Rahul';
    var indexOfName = theArray.indexOf(searchForName);
    if (indexOfName > -1) {
       theArray.splice(indexOfName, 1); // gives ['Sachin', 'Anil']
    }
    

    尽管正如其他人所暗示的那样,根据问题很难理解您的意图

    【讨论】:

      猜你喜欢
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 2020-12-19
      • 1970-01-01
      • 2013-10-21
      • 2015-08-08
      • 1970-01-01
      相关资源
      最近更新 更多